I'm trying to group my list items and create a sticky header for each group. Number of the items in each group may be different. So, I searched and found a package called sticky_headers 0.1.8+1. It is cool but it is creating header for each row. I can't find a way to group similar items under same header. This is my code;
class FixtureList extends StatelessWidget {
final dateFormat = DateFormat('MMMd');
final timeFormat = DateFormat('Hm');
@override
Widget build(BuildContext context) {
return Consumer<FixtureData>(
builder: (context, fixtureData, child) {
return ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemBuilder: (context, index) {
final fixture = fixtureData.fixtures[index];
return StickyHeader(
header: Container(
height: 30.0,
color: Colors.lightBlueAccent,
padding: EdgeInsets.symmetric(horizontal: 8.0),
alignment: Alignment.centerLeft,
child: Text(
dateFormat.format(fixture.dateTime.toLocal()),
style: const TextStyle(color: Colors.black),
),
),
content: FixtureTile(
date: dateFormat.format(fixture.dateTime.toLocal()),
time: timeFormat.format(fixture.dateTime.toLocal()),
homeTeam: fixture.homeTeam,
awayTeam: fixture.awayTeam,
homeOdds: fixture.homeOdds,
drawOdds: fixture.drawOdds,
awayOdds: fixture.awayOdds,
isHomeSelected: fixture.homeSelected,
isDrawSelected: fixture.drawSelected,
isAwaySelected: fixture.awaySelected,
homeCallBack: () =>
fixtureData.updateSelection(fixture, 'home'),
drawCallBack: () =>
fixtureData.updateSelection(fixture, 'draw'),
awayCallBack: () =>
fixtureData.updateSelection(fixture, 'away'),
),
);
},
itemCount: fixtureData.fixtures.length,
);
},
);
}
}
