Closed future-pirate-king closed 4 years ago
Issue with nested scroll view was due to safe area and I was able to fix Is there a way we can add grid inside section ?
Use sectionBuilder, try this way:
import 'package:example/mock_data.dart';
import 'package:flutter/material.dart';
import 'package:sticky_and_expandable_list/sticky_and_expandable_list.dart';
class ExampleListView extends StatefulWidget {
@override
_ExampleListViewState createState() => _ExampleListViewState();
}
class _ExampleListViewState extends State<ExampleListView> {
var sectionList = MockData.getExampleSections();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("ListView Example")),
body: ExpandableListView(
builder: SliverExpandableChildDelegate<String, ExampleSection>(
sectionList: sectionList,
sectionBuilder: _buildSection,
itemBuilder: (context, sectionIndex, itemIndex, index) {
String item = sectionList[sectionIndex].items[itemIndex];
return SizedBox(
child: ListTile(
leading: CircleAvatar(
child: Text("$index"),
),
title: Text(item),
),
);
}),
));
}
Widget _buildSection(
BuildContext context, ExpandableSectionContainerInfo containerInfo) {
containerInfo
..header = _buildHeader(containerInfo)
..content = _buildContent(containerInfo);
return ExpandableSectionContainer(
info: containerInfo,
);
}
Widget _buildHeader(ExpandableSectionContainerInfo containerInfo) {
ExampleSection section = sectionList[containerInfo.sectionIndex];
return InkWell(
child: Container(
color: Colors.lightBlue,
height: 48,
padding: EdgeInsets.only(left: 20),
alignment: Alignment.centerLeft,
child: Text(
section.header,
style: TextStyle(color: Colors.white),
)),
onTap: () {
//toggle section expand state
setState(() {
section.setSectionExpanded(!section.isSectionExpanded());
});
});
}
Widget _buildContent(ExpandableSectionContainerInfo containerInfo) {
ExampleSection section = sectionList[containerInfo.sectionIndex];
if (!section.isSectionExpanded()) {
return Container();
}
return GridView.count(
crossAxisCount: 2,
childAspectRatio: 3,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
children: containerInfo.children,
);
}
}
Awesome :smile: , Thanks for the help
is there way we can use this for grid ? and also it is not working with nested scroll view like this one https://api.flutter.dev/flutter/widgets/NestedScrollView-class.html