favours.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import 'package:cached_network_image/cached_network_image.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:twong/api/index.dart';
  4. import 'package:twong/config/style.dart';
  5. import 'package:twong/utils/index.dart';
  6. import 'package:twong/models/collect.dart';
  7. import 'package:twong/models/product.dart';
  8. import 'package:twong/router/base.dart';
  9. import 'package:twong/widgets/app_bar.dart';
  10. class FavoursPage extends StatefulWidget {
  11. @override
  12. State<StatefulWidget> createState() {
  13. return _FavoursPageState();
  14. }
  15. }
  16. class _FavoursPageState extends State<FavoursPage> {
  17. List<Collect> collects;
  18. @override
  19. void initState() {
  20. super.initState();
  21. loadData();
  22. }
  23. loadData () async {
  24. var list = await Network.inst.getCollect();
  25. setState(() {
  26. collects = list;
  27. });
  28. }
  29. List<Widget> _buildCollects () {
  30. if(collects == null || collects.length < 1) {
  31. return [];
  32. }
  33. List<Widget> widgets = List<Widget>();
  34. for(var collect in collects) {
  35. widgets.add(InkWell(
  36. onTap: () {
  37. Product product = Product();
  38. product.id = collect.pid;
  39. product.store_name = collect.store_name;
  40. product.image = collect.image;
  41. product.price = collect.price;
  42. Navigator.pushNamed(context, RouteNames.productDetails, arguments: product);
  43. },
  44. child: Container(
  45. padding: EdgeInsets.only(left: 10, right: 10, top: 10),
  46. child: Row(
  47. children: <Widget>[
  48. CachedNetworkImage(
  49. imageUrl: collect.image, height: 90.px, width: 80.px, fit: BoxFit.cover),
  50. Expanded(
  51. child: Container(
  52. height: 90.px,
  53. child: Column(
  54. children: <Widget>[
  55. Expanded(child: Container(
  56. padding: EdgeInsets.only(left: 10, right: 10),
  57. child: Text(collect.store_name),
  58. ),),
  59. Expanded(child: Row(
  60. children: <Widget>[
  61. Expanded(child: Container(
  62. padding: EdgeInsets.only(left: 10, right: 10),
  63. child: Text(collect.price),
  64. ),),
  65. Expanded(child: Container(
  66. padding: EdgeInsets.only(left: 16, right: 16, top: 4, bottom: 4),
  67. child: FlatButton(
  68. onPressed: () {
  69. print(collect.pid);
  70. },
  71. color: DColors.Main,
  72. shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(20))),
  73. child: Text('删除', style: TextStyle(color: Colors.white),),
  74. ),
  75. ),),
  76. ],
  77. ))
  78. ],
  79. ),
  80. ),
  81. )
  82. ],
  83. ),
  84. ),
  85. ));
  86. }
  87. return widgets;
  88. }
  89. @override
  90. Widget build(BuildContext context) {
  91. return Scaffold(
  92. appBar: DAppBar("收藏"),
  93. body: SafeArea(
  94. child: ListView(
  95. physics: ClampingScrollPhysics(),
  96. children: _buildCollects(),
  97. ),
  98. )
  99. );
  100. }
  101. }