#flutter #dart #flutter-layout
#flutter #dart #flutter-layout
Вопрос:
У меня есть список плиток, динамически генерируемых из вызова API. У меня есть кнопка «Поделиться» на панели приложений, при нажатии на которую я хотел бы, чтобы флажки отображались как конечное свойство в плитке списка. пример:
ListTile(
title: Text('fetchedData.title'),
trailing: Checkbox()
)
Мой подход заключается в условном отображении плиток, но я не уверен, что делаю это в правильном месте. Я использую логическую часть состояния, чтобы определить, должны ли флажки отображаться рядом с плиткой или нет.
Что-то еще, что я пробовал, — это создание вспомогательных функций для построения листов списка для меня, но не уверен, что он должен возвращать, если у вас есть какие-либо советы о том, как сделать эти функции сортировки, пожалуйста, включите это!
Это мой код:
body: Center(
child: FutureBuilder(
future: pdfSnippets(),
builder: (BuildContext context, AsyncSnapshot<List> snapshot) {
if (snapshot.hasData) {
return ListView.builder(
// will have to hide the eccess snippet with overflow
// and have a max width to fit the trailing checkbox
itemCount: snippets.length,
itemBuilder: (BuildContext context, int index) {
// if you don't like card view, remove Card and just return ListTile
return checkboxStatus ?
Card (
child: ListTile(
// not referencing properly
title: Text('${snapshot[index].body}'),
subtitle: Text('${snapshot[index].title}'),
trailing: Checkbox(
value: false,
)
)
) :
Card (
child: ListTile(
// not referencing properly
title: Text('${snapshot[index].body}'),
subtitle: Text('${snapshot[index].title}'),
onLongPress: () => setCheckboxStatus(),
)
);
}
);
} else {
throw('nothing to see here');
}
},
),
),
Ответ №1:
Вы можете просто сделать CheckBox
условие таким образом, чтобы ваш код выглядел проще:
ListTile(
// not referencing properly
title: Text('body'),
subtitle: Text('title'),
trailing: checkboxStatus
? Checkbox(
value: false,
)
: null,
)