Вот моя попытка:
SingleChildScrollView(
child: Column(children: <Widget>[
ExpansionTile(title: Text("Category 1"), children: <Widget>[
GridView.count(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
crossAxisCount: 2,
padding: const EdgeInsets.all(20.0),
crossAxisSpacing: 10.0,
childAspectRatio: MediaQuery.of(context).size.width /
(MediaQuery.of(context).size.height / 4),
children: <Widget>[
Text("SubCategory 1"),
Text("SubCategory 2"),
Text("SubCategory 3"),
Text("SubCategory 4"),
Text("SubCategory 5"),
Text("SubCategory 6"),
])
]),
ExpansionTile(title: Text("Category 2"), children: <Widget>[
GridView.count(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
crossAxisCount: 2,
padding: const EdgeInsets.all(20.0),
crossAxisSpacing: 10.0,
childAspectRatio: MediaQuery.of(context).size.width /
(MediaQuery.of(context).size.height / 4),
children: <Widget>[
Text("SubCategory 1"),
Text("SubCategory 2"),
Text("SubCategory 3"),
Text("SubCategory 4"),
Text("SubCategory 5"),
Text("SubCategory 6"),
])
]),
ExpansionTile(title: Text("Category 3"), children: <Widget>[
GridView.count(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
crossAxisCount: 2,
padding: const EdgeInsets.all(20.0),
crossAxisSpacing: 10.0,
childAspectRatio: MediaQuery.of(context).size.width /
(MediaQuery.of(context).size.height / 4),
children: <Widget>[
Text("SubCategory 1"),
Text("SubCategory 2"),
Text("SubCategory 3"),
Text("SubCategory 4"),
Text("SubCategory 5"),
Text("SubCategory 6"),
])
])
]),
)
