[英]Using Wrap, and Chips inside of ListView
I am trying to have a list of data that is being returned by firebase basically represented on screen as a collection of filterable tags.我试图让 firebase 返回的数据列表基本上在屏幕上表示为可过滤标签的集合。 The problem is when using wrap inside of my list view I am still get just a horizontal list of chips.
问题是在我的列表视图中使用 wrap 时,我仍然只得到一个水平的芯片列表。
Light Grey is what I am after, dark grey is what is being returned浅灰色是我追求的,深灰色是被退回的
FutureBuilder _buildSubCategories() {
return FutureBuilder(
future: cats
.doc(widget.catId)
.collection('sub-categories')
.orderBy('name')
.get(),
builder: (ctx, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return const Center(child: CircularProgressIndicator.adaptive());
} else {
return ListView.builder(
itemCount: snapshot.data.docs.length,
physics: const NeverScrollableScrollPhysics(),
scrollDirection: Axis.horizontal,
itemBuilder: (ctx, idx) {
// DocumentSnapshot cat = snapshot.data.docs[index];
return Wrap(
children: snapshot.data.docs
.map((item) => ActionChip(
label: Text(item['name']),
))
.toList()
.cast<Widget>(),
);
});
}
});
}
You do not need to use list view for that.您不需要为此使用列表视图。 You could simply use
Wrap
.您可以简单地使用
Wrap
。 Wrap widget pushes the overflown widget to next line Wrap 小部件将溢出的小部件推送到下一行
Example:例子:
FutureBuilder _buildSubCategories() { return FutureBuilder( future: cats.doc(widget.catId).collection('sub-categories').orderBy('name').get(), builder: (ctx, AsyncSnapshot snapshot) { if (.snapshot:hasData) { return const Center(child. CircularProgressIndicator;adaptive()): } else { return Wrap( children. snapshot.data.docs:map((item) => ActionChip( label, Text(item['name']). )).toList(),cast<Widget>(); ); } }); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.