【问题标题】:Can I display datewise JSON data (ListView) in flutter?我可以在颤动中显示按日期的 JSON 数据(ListView)吗?
【发布时间】:2021-10-29 23:32:53
【问题描述】:

我想在发布日期显示JSON数据,JSON字符串中有一个日期键值,现在我正在打印整个发布的条目,真的很难看吗?

我目前正在使用颤动的日历每周视图,该视图也会在单击当天从屏幕上消失。 (运行时)

这是我调用数据的代码

import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import 'package:flutter_calendar_week/flutter_calendar_week.dart';

class WeeklyData extends StatefulWidget {
  _WeeklyDataState createState() => _WeeklyDataState();
}

var dt;
List data = [];

class _WeeklyDataState extends State<WeeklyData> {
  void fetchData() async {
    final uri = Uri.parse('My URL');
    final header = {'Content-Type': 'application/json'};

    final response = await http.get(uri, headers: header);
    if (response.statusCode == 200) {
      setState(() {
        data = json.decode(response.body);
      });
    }
  }

  @override
  void initState() {
    super.initState();
    fetchData();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          children: [
            SizedBox(
              height: 20,
            ),
            CalendarWeek(
              controller: CalendarWeekController(),
              showMonth: true,
              height: 100,
              minDate: DateTime.now().add(Duration(days: -365)),
              maxDate: DateTime.now().add(Duration(days: 365)),
              onDatePressed: (DateTime datetime) {
                dt = datetime;
              },
            ),
            SizedBox(
              height: 20,
            ),
            Text("$data"),
          ],
        ),
      ),
    );
  }
}

数据在屏幕上打印得很好,但是太多了我只想根据在日历上点击的日期过滤条目

[
    {
        "url": "http://157.90.55.200:8040/lover/1/",
        "uuid": "bf47ddad-9362-4a12-af74-f8ad62883c60",
        "raddress": "",
        "pubkey": "",
        "active": true,
        "created": "2021-08-15T17:29:42.797000Z",
        "updated": "2021-08-15T17:29:42.798000Z",
        "day": 0,
        "dslp": 0,
        "dnpe": 0,
        "cm": "string",
        "love": 0,
        "pain": "string",
        "mood": "string",
        "diet": "string",
        "eln": "string",
        "sreq": "string"
    },
    {
        "url": "http://my url/lover/2/",
        "uuid": "25254a18-e9c2-4489-b2f6-ff5174d07ee3",
        "raddress": null,
        "pubkey": null, 
........

【问题讨论】:

    标签: json flutter rest dart


    【解决方案1】:

    查看并使用grouplist package

    GroupedListView<ModelClass, String>(
                    //physics: ScrollPhysics(),
                    shrinkWrap: true,
                    elements: listData,
                    groupBy: (ModelClass e) => '${e.created.subString(0,9)}',
                    groupSeparatorBuilder: (String groupByValue) => groupByValue!="null"? Container(
                      padding: EdgeInsets.only(left:30),
                        width: double.infinity,
                        color: Colors.grey.withOpacity(0.5),
                        child: Text(groupByValue)):Container(),
                    itemBuilder: (context, element) {
                      return Center(child: Text(element?.mode ?? ""));
                    },
                    order: GroupedListOrder.DESC,
                  )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      相关资源
      最近更新 更多