Мне нужно меню навигации на моей домашней странице для моего приложения. Я использовал ListView с ExpansionTile в качестве дочерних элементов, но мне нужно, чтобы заголовок был отдельной кнопкой и только downward_arrow, чтобы открыть плитку расширения. Как мне этого добиться? Есть ли здесь виджет, которого я пропускаю?
Я использовал ExpansionPanelList и ExpansionPanel, но результат выглядит ужасно с границами сверху и снизу. Есть ли специальный способ сделать это?
Я также пытался использовать плитку расширения в качестве конечного элемента для плитки списка, но область просмотра выходит за границы.
Код для части плитки расширения
return Expanded(
child: ListView(
children: gridTiles
.map(
(tile) => ListTile(
contentPadding: EdgeInsets.all(10),
leading: ClipRRect(
borderRadius: BorderRadius.circular(4),
child: Container(
padding: EdgeInsets.all(7),
color: tile['color'],
child: Icon(
tile['icon'],
color: Colors.white,
),
),
),
// title: Text("Test"),
title: ExpansionTile(
title: Text(
// tile['title'],
'',
style: TextStyle(
color: Colors.black,
),
),
children: <Widget>[
Text("test"),
],
),
),
)
.toList(),
),
);
Код для части панели расширения
return ExpansionPanelList(
expansionCallback: (int index, bool isExpanded) {
setState(() {
isExpanded1 = !isExpanded;
});
},
children: gridTiles.map<ExpansionPanel>((tile) {
return ExpansionPanel(
body: Text("test body"),
headerBuilder: (BuildContext context, bool isExpanded) {
return ListTile(
leading: Icon(Icons.title),
title: Text("test"),
onTap: () => print("Test"),
);
},
canTapOnHeader: true,
isExpanded: isExpanded1,
);
}).toList(),
);