【发布时间】:2021-08-16 17:05:56
【问题描述】:
我正在尝试按类别过滤我的列表,但到目前为止没有成功。我尝试了几种方法来实现它,还问了一些朋友。不幸的是,他们的答案都没有奏效。
这是屏幕的完整代码。我希望能够按类别过滤文档,例如:“Where()”...
有什么想法吗?
谢谢。
class ListGameWidget extends StatefulWidget {
ListGameWidget(this._gameList, this._title);
final List<Game> _gameList;
final String _title;
@override
_ListGameWidgetState createState() => _ListGameWidgetState();
}
class _ListGameWidgetState extends State<ListGameWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: widget._gameList != null && widget._gameList.isNotEmpty
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
widget._title,
style:
TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
Expanded(
child: ListView.builder(
shrinkWrap: true,
itemCount: widget._gameList.length,
itemBuilder: (context, index) {
var game = widget._gameList[index];
return Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10)),
child: Row(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image(
image: NetworkImage(widget._gameList
.elementAt(index)
.imagen1),
height: 100.0,
width: 133.0,
),
),
),
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
game.tienda,
style: TextStyle(
fontWeight: FontWeight.bold),
),
Text(game.tipo),
Text(game.comunidad),
Text(game.tel1, style: TextStyle()),
],
),
],
),
);
}),
),
],
)
: Center(child: CircularProgressIndicator()),
),
),
);
}
}
【问题讨论】:
-
您要过滤什么?您只有一个列表。
-
谢谢!这是商店列表,所以我想按类别(餐厅、面包店...)过滤它们
-
我不知道您是如何加载数据的,但也许最好的方法是从 Firestore 加载过滤后的数据。
-
可能是。谢谢!