Ria*_*nou 2 favorites listview dart flutter
我有一个ListView.builder 带有物品的物品,我们可以单击一颗心来添加到收藏夹。我想将添加到收藏夹的所有项目放在另一个 ListView.builder屏幕的另一个项目中。我也希望通过单击心形可以抑制收藏夹列表视图的收藏夹项目。我怎样才能做到这一点?这是我的代码:
Home_screen.dart
\nimport 'package:flutter/material.dart';\nimport 'package:cached_network_image/cached_network_image.dart';\nimport '../recyclerview/data.dart';\nimport 'package:chrolix/constants.dart';\nimport 'package:flutter_countdown_timer/flutter_countdown_timer.dart';\n\nint itemCount = item.length;\nList<bool> selected = new List<bool>();\n\nclass MyHomePage extends StatefulWidget {\n MyHomePage({Key key, this.title}) : super(key: key);\n final String title;\n\n @override\n _MyHomePageState createState() => _MyHomePageState();\n}\n\nclass _MyHomePageState extends State<MyHomePage> {\n @override\n initState() {\n for (var i = 0; i < itemCount; i++) {\n selected.add(false);\n }\n super.initState();\n }\n \n Icon notFavorite = Icon(Icons.favorite_border, size: 32,);\n Icon inFavorite = Icon(Icons.favorite, size: 32,);\n\n @override\n Widget build(BuildContext context) {\n return new Scaffold(\n body: ListView.builder(\n scrollDirection: Axis.vertical,\n physics: BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),\n itemCount: itemCount,\n itemBuilder: (BuildContext context, int index) {\n return Container(\n child: new Row(\n children: <Widget>[\n //Image\n new Container(\n margin: new EdgeInsets.only(top: 5.0, left: 0.0),\n child: new CachedNetworkImage(\n imageUrl: item[index].imageURL,\n height: MediaQuery.of(context).size.width / 3,\n width: MediaQuery.of(context).size.width / 2,\n fit: BoxFit.cover,\n ),\n ),\n new Container(\n height: MediaQuery.of(context).size.width / 3,\n width: MediaQuery.of(context).size.width / 2,\n child : new Column(\n crossAxisAlignment: CrossAxisAlignment.center,\n children: <Widget>[\n //Text\n new Row(\n mainAxisAlignment: MainAxisAlignment.center,\n crossAxisAlignment: CrossAxisAlignment.start,\n mainAxisSize: MainAxisSize.min,\n children: <Widget>[\n Spacer(), \n //Titre\n Container(\n padding: const EdgeInsets.only(top: 15.0 ),\n child: Text(\n item[index].title,\n style: kItemTitle,\n ),\n ),\n //Decription\n Container(\n padding: const EdgeInsets.only(left: 10.0, top: 15.0),\n child:Text(\n item[index].description,\n style: kItemDescription,\n ),\n ),\n Spacer(),\n ],\n ),\n Container(\n padding: const EdgeInsets.only(top: 10.0),\n child: CountdownTimer(\n daysSymbol: new Text("j "),\n hoursSymbol: new Text("\xe2\x80\x8a:\xe2\x80\x8a"),\n minSymbol: new Text("\xe2\x80\x8a:\xe2\x80\x8a"),\n secSymbol: new Text(""),\n endTime: item[index].countdown,\n textStyle: TextStyle(fontSize: 28, fontWeight: FontWeight.bold),\n onEnd: () {\n print('onEnd');\n },\n ),\n ),\n Container( \n padding: const EdgeInsets.only(left: 8.0, top: 8.0),\n child: Row(\n mainAxisAlignment: MainAxisAlignment.start,\n crossAxisAlignment: CrossAxisAlignment.center,\n children: <Widget>[\n GestureDetector(\n child: selected.elementAt(index) ? inFavorite : notFavorite,\n onTap: () {\n setState(() {\n selected[index] = !selected.elementAt(index);\n });\n },\n ),\n ],),\n ),\n ],),\n ), \n ],\n ),\n );\n }\n )\n );\n}\n}\nRun Code Online (Sandbox Code Playgroud)\n最喜欢的_screen.dart
\nimport 'package:flutter/material.dart';\nimport 'package:chrolix/constants.dart';\nimport 'package:chrolix/nav.dart';\nimport 'package:get/get.dart';\n\n\nclass Favoris extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n return Scaffold(\n body: //Put here the LisView.builder with the favorite items\n )\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)\n我没有看到其他可以回答我的问题。谢谢 !
\n更新:我已经使用了提供商的包
\n| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |