Мне нужно, чтобы некоторые списки сворачивались по их темам в моем проекте, и мне интересно, нужно ли мне реализовать это с нуля или, скорее, использовать компонент из флаттера. Этот компонент существует?
Заранее спасибо :)
Извините за непонятность. Я хочу, чтобы он выглядел как аккордеон, в котором содержимое разделов - ListViews
В галерее Flutter есть два примера, которые могут иметь отношение к вашим спискам, подобным аккордеону.
Демонстрация панели расширения и Двухуровневая демонстрация списка
Демо-версия панели расширения - это, вероятно, то, что вам нужно. Если да, посмотрите, как в демонстрации используется ExpansionPanel и используются headerBuilder и body. Вы можете расширить это, чтобы сделать заголовок и тела настолько сложными, насколько вам нужно. Демонстрация галереи добавляет вспомогательный класс DemoItem. Вы можете использовать этот узор или придумать собственный дизайн.
Вот фрагмент, который показывает демонстрацию с использованием ExpansionPanelList путем передачи обратного вызова и списка DemoItem:
child: new ExpansionPanelList(
expansionCallback: (int index, bool isExpanded) {
setState(() {
_demoItems[index].isExpanded = !isExpanded;
});
},
children: _demoItems.map((DemoItem<dynamic> item) {
return new ExpansionPanel(
isExpanded: item.isExpanded,
headerBuilder: item.headerBuilder,
body: item.build()
);
}).toList()
),
Спасибо. К сожалению, двухуровневые списки на данный момент устарели, поэтому я попробую ExpansionPanel!
@JotaRenan, где вы заметили, что он устарел? Я здесь ничего не видел в документации: github.com/flutter/flutter/blob/master/packages/flutter/lib/ src /…
VScode отмечает это: 'TwoLevelList' is deprecated and shouldn't be used.
Ах! @JotaRenan, да, TwoLevelList устарел, но в демонстрации используется ExpansionTile. Вот ссылка на демонстрацию с ExpansionTile с использованием ListTiles: github.com/flutter/flutter/blob/master/examples/flutter_gall ery /… Вот старая ссылка на DEPRECATED: TwoLevelList github.com/flutter/flutter/blob/…