import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:akuCommunity/routers/page_routers.dart'; import 'package:akuCommunity/widget/activity_card.dart'; import 'package:akuCommunity/widget/common_app_bar.dart'; class ActivitiesPage extends StatefulWidget { final Bundle bundle; ActivitiesPage({Key key, this.bundle}) : super(key: key); @override _ActivitiesPageState createState() => _ActivitiesPageState(); } class _ActivitiesPageState extends State { List images = [ "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1151143562,4115642159&fm=26&gp=0.jpg", "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2551412680,857245643&fm=26&gp=0.jpg", "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3604827221,1047385274&fm=26&gp=0.jpg", ]; List> _listView = []; List> _listVote = [ { 'imagePath': 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600058454436&di=76f6d526c4108b582c540d24bad316d8&imgtype=0&src=http%3A%2F%2Fimg003.hc360.cn%2Fm2%2FM00%2FFD%2FB9%2FwKhQclRLWoqEAosNAAAAABnzxUo896.jpg', 'title': '为优秀点赞!2020第一届最美服务之星评选', 'subtitleFirst': '快来为你支持的保洁员投票吧!~', 'subtitleSecond': '06月17日 12:00至06月27日18:30', 'isOver': false, 'isVoteOver': true, }, { 'imagePath': 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600058583164&di=04000bc0e0394edb0c74f7c8fa0efcb2&imgtype=0&src=http%3A%2F%2Fn.sinaimg.cn%2Ftranslate%2F161%2Fw1080h681%2F20180814%2FzWKK-hhtfwqr0303774.jpg', 'title': '投票!选出你心中“乘风破浪的绿化保卫员”', 'subtitleFirst': '建设美丽的边疆,爱护我们的家园', 'subtitleSecond': '04月17日 13:00至04月23日18:30', 'isOver': false, 'isVoteOver': true, }, { 'imagePath': 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600058626924&di=568c1c35b47e6c8bb762f71a883c9e09&imgtype=0&src=http%3A%2F%2Fimg.soufunimg.com%2Fnews%2F2015_11%2F26%2F1448505277039.jpg', 'title': '特别忠诚,在生死抉择的时刻,他把人民利益举过他把人民利益举过……', 'subtitleFirst': '平凡服务者,最美保安员', 'subtitleSecond': '04月12日 12:00至04月15日18:30', 'isOver': true, 'isVoteOver': false, } ]; List> _listEnter = [ { 'imagePath': 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3786472598,2225627644&fm=26&gp=0.jpg', 'title': '宁化社区第一届煎蛋比赛报名开始', 'subtitleFirst': '活动室二楼', 'subtitleSecond': '06月17日 12:00至06月27日18:30', 'isOver': false, 'isVoteOver': true, }, { 'imagePath': 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600339523640&di=be179b5e314f9e198c000e7726affef6&imgtype=0&src=http%3A%2F%2Fa.hiphotos.baidu.com%2Fbaike%2Fpic%2Fitem%2F7e3e6709c93d70cf7371f1f3f1dcd100bba12b40.jpg', 'title': '美嘉社区第三届六一亲子活动开始啦', 'subtitleFirst': '中央活动区', 'subtitleSecond': '04月17日 13:00至04月23日18:30', 'isOver': false, 'isVoteOver': true, }, { 'imagePath': 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=347834970,829932821&fm=26&gp=0.jpg', 'title': '生命在与运动,华侨小区拔河比赛开始', 'subtitleFirst': '小区外围体育馆', 'subtitleSecond': '04月12日 12:00至04月15日18:30', 'isOver': true, 'isVoteOver': false, } ]; RefreshController _refreshController = RefreshController(initialRefresh: false); @override void initState() { super.initState(); _listView = widget.bundle.getBool('isVote') ? _listVote : _listEnter; } void _onRefresh() async { await Future.delayed(Duration(milliseconds: 1500)); _refreshController.refreshCompleted(); } void _onLoading() async { await Future.delayed(Duration(milliseconds: 1500)); if (mounted) setState(() {}); _refreshController.loadComplete(); } void detailsRouter(String imagePath, title, bool isOver, isVote, isVoteOver, List memberList) { Get.to(ActivitiesPage( bundle: Bundle() ..putMap('details', { 'title': title, 'imagePath': imagePath, 'isOver': isOver, 'isVote': isVote, 'isVoteOver': isVoteOver, 'memberList': memberList }), )); } @override void dispose() { super.dispose(); _refreshController.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: PreferredSize( child: CommonAppBar( title: '社区活动', ), preferredSize: Size.fromHeight(kToolbarHeight), ), body: RefreshConfiguration( hideFooterWhenNotFull: true, child: SmartRefresher( controller: _refreshController, header: WaterDropHeader(), footer: ClassicFooter(), onRefresh: _onRefresh, onLoading: _onLoading, enablePullUp: true, child: CustomScrollView( slivers: [ SliverList( delegate: SliverChildBuilderDelegate( (BuildContext context, int index) => ActivityCard( imagePath: _listView[index]['imagePath'], title: _listView[index]['title'], subtitleFirst: _listView[index]['subtitleFirst'], subtitleSecond: _listView[index]['subtitleSecond'], memberList: images, isOver: _listView[index]['isOver'], isVote: widget.bundle.getBool('isVote'), isVoteOver: _listView[index]['isVoteOver'], fun: detailsRouter, ), childCount: _listView.length, ), ), ], ), ), ), ); } }