import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:akuCommunity/base/assets_image.dart'; import 'package:akuCommunity/utils/screenutil.dart'; import 'widget/home_app_bar.dart'; import 'widget/home_search.dart'; import 'widget/home_swiper.dart'; import 'widget/home_card.dart'; import 'widget/home_tag_bar.dart'; import 'package:akuCommunity/widget/container_comment.dart'; import 'package:akuCommunity/widget/single_ad_space.dart'; import 'package:akuCommunity/widget/grid_button.dart'; import 'package:akuCommunity/widget/sliver_goods_card.dart'; import 'package:akuCommunity/service/net_util.dart'; import 'package:akuCommunity/service/base_model.dart'; import 'package:akuCommunity/model/aku_shop_model.dart'; import 'package:akuCommunity/widget/goods_card_skeleton.dart'; import 'package:akuCommunity/routers/page_routers.dart'; class HomePage extends StatefulWidget { HomePage({Key key}) : super(key: key); @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin { @override bool get wantKeepAlive => true; List _shopList = []; List data; RefreshController _refreshController = RefreshController(initialRefresh: false); int page = 1; @override void initState() { super.initState(); Future loadString = DefaultAssetBundle.of(context).loadString("assets/json/shop.json"); loadString.then((String value) { // 通知框架此对象的内部状态已更改 akuShop(value); }); // akuShop(page); } Future akuShop(String response) async { Map result = json.decode(response.toString()); BaseModel model = BaseModel.fromJson(result); model.result.forEach((item) { item["count"] = 1; item["isCheck"] = false; AkuShopModel list = AkuShopModel.fromJson(item); setState(() { _shopList.add(list); }); }); } void _onLoading() async { await Future.delayed(Duration(milliseconds: 1500)); page++; // akuShop(page); if (mounted) setState(() {}); _refreshController.loadComplete(); } @override Widget build(BuildContext context) { ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: true); return Scaffold( appBar: PreferredSize( child: HomeAppBar(), preferredSize: Size.fromHeight(kToolbarHeight), ), body: RefreshConfiguration( child: SmartRefresher( controller: _refreshController, header: WaterDropHeader(), footer: ClassicFooter(), onLoading: _onLoading, enablePullUp: true, enablePullDown: false, child: CustomScrollView( slivers: [ SliverToBoxAdapter( child: Column( mainAxisSize: MainAxisSize.min, children: [ HomeSearch(), HomeSwiper(), SizedBox(height: Screenutil.length(100)), ContainerComment( radius: 8, customWidget: GridButton( gridList: AssetsImage.homeGridList, count: 4, ), ), SingleAdSpace( imagePath: 'assets/example/guanggao2.png', ), HomeTagBar( title: '物业收费标准请查收~', tag: '公告', isShowImage: true, ), Column( children: [ HomeTagBar( title: '社区活动', tag: '活动', isShowImage: false, fun: () { Navigator.pushNamed( context, PageName.activities_page.toString(), arguments: Bundle()..putBool('isVote', false)); }, ), HomeCard( isActivity: true, title: '22日上午10点,阳光小镇在二期乒乓球场地举行了小区乒乓比赛', subtitleOne: '活动时二楼', subtitleTwo: '06月17日 12:00至06月17日 18:30', imagePath: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1601275745883&di=e7b2a1afdb8812f8a9acd9742ea7e1a7&imgtype=0&src=http%3A%2F%2Fy3.ifengimg.com%2Fcmpp%2F2013%2F12%2F27%2F03%2F459f46cb-c07f-4083-9a65-27b90cb4562f.jpg', ), ], ), SizedBox(height: Screenutil.length(24)), Column( children: [ HomeTagBar( title: '社区团购', tag: '团购', isShowImage: false, ), HomeCard( isActivity: false, title: '新疆库尔阿勒4.5斤,仙人蕉 香甜可口', subtitleOne: '中国新疆', subtitleTwo: '2020年07月03日', imagePath: 'http://news.eastday.com/d/file/tga/2013-02-17/c2e7bd7fca1ed2ecf5d50dc9fb30275d.jpg', ), HomeCard( isActivity: false, title: '刚果柠檬大果4盒 鲜果新鲜采摘15斤', subtitleOne: '非洲刚果', subtitleTwo: '2020年08月09日', imagePath: 'http://5b0988e595225.cdn.sohucs.com/images/20180203/328e145f84c54dd08d1b11b890109862.jpeg', ), ], ), SizedBox(height: Screenutil.length(30)), HomeTagBar( title: '社区商城', tag: '团购', isShowImage: false, isShowTitle: true, ), ], ), ), SliverPadding( padding: EdgeInsets.only( top: Screenutil.length(30), left: Screenutil.length(32), right: Screenutil.length(32), ), sliver: _shopList.length == 0 ? SliverToBoxAdapter(child: GoodsCardSkeleton()) : SliverGoodsCard(shoplist: _shopList)), ], ), ), ), ); } }