You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

170 lines
6.2 KiB

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
4 years ago
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<ActivitiesPage> {
List<String> 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<Map<String, dynamic>> _listView = [];
List<Map<String, dynamic>> _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<Map<String, dynamic>> _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<String> memberList) {
4 years ago
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,
),
),
],
),
),
),
);
}
}