how to group data by date in a listview in flutter
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

void main() {
  final dateString = '2020-06-16T10:31:12.000Z';
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;
  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
 
  List<Map> list = [
    {
      "time": "2020-06-16T10:31:12.000Z",
      "message":
          "P2 BGM-01 HV buiten materieel (Gas lekkage) Franckstraat Arnhem 073631"
    },
    {
      "time": "2020-06-16T10:29:35.000Z",
      "message": "A1 Brahmslaan 3862TD Nijkerk 73278"
    },
    {
      "time": "2020-06-16T10:29:35.000Z",
      "message": "A2 NS Station Rheden Dr. Langemijerweg 6991EV Rheden 73286"
    },
    {
      "time": "2020-06-15T09:41:18.000Z",
      "message": "A2 VWS Utrechtseweg 6871DR Renkum 74636"
    },
    {
      "time": "2020-06-14T09:40:58.000Z",
      "message":
          "B2 5623EJ : Michelangelolaan Eindhoven Obj: ziekenhuizen 8610 Ca CATH route 522 PAAZ Rit: 66570"
    }
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: ListView.builder(
            itemCount: list.length,
            itemBuilder: (_, index) {
              bool isSameDate = true;
              final String dateString = list[index]['time'];
              final DateTime date = DateTime.parse(dateString);
              final item = list[index];
              if (index == 0) {
                isSameDate = false;
              } else {
                final String prevDateString = list[index - 1]['time'];
                final DateTime prevDate = DateTime.parse(prevDateString);
                isSameDate = date.isSameDate(prevDate);
              }
              if (index == 0 || !(isSameDate)) {
                return Column(children: [
                  Text(date.formatDate()),
                  ListTile(title: Text('item $index'))
                ]);
              } else {
                return ListTile(title: Text('item $index'));
              }
            }),
      ),
    );
  }
}

const String dateFormatter = 'MMMM dd, y';

extension DateHelper on DateTime {
  
   String formatDate() {
     final formatter = DateFormat(dateFormatter);
      return formatter.format(this);
  }
  bool isSameDate(DateTime other) {
    return this.year == other.year &&
        this.month == other.month &&
        this.day == other.day;
  }

  int getDifferenceInDaysWithNow() {
    final now = DateTime.now();
    return now.difference(this).inDays;
  }
}

Dart相关代码片段

dart async loop

how to disable hover splash tabbar flutter

scrollbar flutter styling

dart run build delete

flutter random colour

how to add dotted line to a widget in flutter

how to automatically fix dart lint warnings

Window flutter app with green background

dart circle radius

null coalescing shorthand dart

Dart object literal

showmodalbottomsheet shape flutter

dropdown date picker

media query dart

function with return type and parameter in dart

function with return type in dart

empty a list flutter

while loop in dart

for in loop with json or List of Map in dart

for in loop with set in dart

function with parameter in dart

function in dart

do while loop in dart

for loop dart

switch case in dart

if else in dart

dart map with method

dart map example

for in or for each loop in dart

rate us using flutter

flutter hebrew locale

erorr handling in dart

textfield in row flutter issue

flutter material 3 appbar shadow

Flutter Provider best Architecture example

MediaType? contentType in dart dio

navigator.push flutter example

Dart object literal-ish

How to flatten a list in dart

How to change svg icon colors in flutter

how to disable default button splash in flutter

flutter button above keyboard

Make the text editable after press the button

flutter how to insert for loop in column or row

Slide up and down time picker flutter

How to make a text selectable in flutter

How to access the clipboard data in flutter

get os temp dir in flutter

dart override equals

fluter calculate timezone offset

animation text flutter

dart reload local packages

Don't use 'BuildContext's across async gaps.

how to update dart sdk in vscode

add MultipartFile array flutter

clear screen dart

only one decimal dart double

add item to Map to list flutter

flutter appbar scroll color

How to use multiple streams combine in dart

how to convert xfile to file in flutter

which version of opencv is compatible with dart 3

flutter multiline comment

dart interval timer

! and ? in flutter

super keyword in flutter

oh, nice popup

how to save image to gallery in flutter

mobile_scanner flutter blank screen

flutter tabs under scaffold

flutter scroll date picker

Flutter audio extractor screen layout

Error: Dart Entrypoint hasn't been set

text span recognizer flutter

flutter Column

flutter Row

set state vs init state flutter

flutter rating bar

switch expression dart

how to use proxy provider in flutter