#flutter
#флаттер
Вопрос:
У меня есть сценарий, в котором мне нужна панель расширения и не расширения. Я изо всех сил пытаюсь начать
вот часть моего кода
children: categoryAllListData.map<ExpansionPanelRadio>((item) {
return (item.catlist.length > 0)
? ExpansionPanelRadio(
value: item.id,
headerBuilder: (BuildContext context, bool isExpanded) {
return ListTile(
title: Text(item.name),
);
},
body: _createCategoryListExpandedSubTitle(item.catlist),
)
: ExpansionPanelRadio(
value: item.id,
// isExpanded:false,
headerBuilder: (BuildContext context, isExpandeds) {
return ListTile(
title: Text(item.name),
);
},
body: Container(),
);
}).toList(),
);
}
но я не могу удалить панель, пожалуйста, помогите достичь этого
Ответ №1:
Возможно, ваше условие (item.catlist.length > 0)
должно быть выше в вашем алгоритме и работать с ExpansionPanel только в том случае, если условие правильное.
Редактировать :
Я думаю, вы не хотите отображать список, когда (item.catlist.length > 0)
вы можете использовать видимый виджет и ваше состояние
Visible(
visible : item.catlist.length > 0,
child : Column(
children : categoryAllListData.map<ExpansionPanelRadio>((item) {
return ExpansionPanelRadio(
value: item.id,
headerBuilder: (BuildContext context, bool isExpanded) {
return ListTile(
title: Text(item.name),
);
},
body: _createCategoryListExpandedSubTitle(item.catlist))
}).toList()
))
Комментарии:
1. Возможно, вам захочется использовать видимый виджет, когда вы не хотите отображать список
2. Мне нужно показать, но оно должно быть заключено в контейнер, а не в expansionradio
3. Хорошо, поэтому вместо того, чтобы использовать вторую панель расширения (не расширенную), вы можете использовать текстовый виджет : item.catlist.length> 0? ExpansionPanelRadio(…) : Текст (item.name )