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.
aku_new_community/lib/pages/property/widget/property_activity_card.dart

199 lines
6.6 KiB

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:image_stack/image_stack.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/cached_image_wrapper.dart';
class PropertyActivityCard extends StatelessWidget {
final Function fun;
PropertyActivityCard({Key key, this.fun}) : super(key: key);
final 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",
];
final List<Map<String, dynamic>> _listView = [
{
'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',
'peopleNum': '37',
'isOver': false,
'isVote': false,
'isVoteOver': false,
},
{
'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',
'peopleNum': '37',
'isOver': false,
'isVote': false,
'isVoteOver': false
},
];
TextStyle _textStyleTitle() {
return TextStyle(fontSize: 28.sp, color: Color(0xff4a4b51));
}
TextStyle _textStyleTag() {
return TextStyle(fontSize: 24.sp, color: Color(0xff999999));
}
TextStyle _textStyleSubtitle() {
return TextStyle(fontSize: 24.sp, color: Color(0xff4a4b51));
}
Container _activityCard(String imagePath, title, subtitleFirst,
subtitleSecond, peopleNum, bool isOver, isVote, isVoteOver, int index) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(8)),
),
margin: EdgeInsets.only(
top: index == 0 ? 0 : 32.w,
left: 32.w,
right: 32.w,
),
padding: EdgeInsets.only(
top: 12.w,
left: 10.w,
right: 22.w,
bottom: 20.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Container(
margin: EdgeInsets.only(right: 20.w),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(6)),
child: CachedImageWrapper(
url: imagePath,
width: 160.w,
height: 120.w,
),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(bottom: 6.w),
child: Text(
title,
style: _textStyleTitle(),
),
),
Container(
margin: EdgeInsets.only(bottom: 8.w),
child: RichText(
text: TextSpan(
text: '地点:',
style: _textStyleTag(),
children: [
TextSpan(
text: subtitleFirst, style: _textStyleSubtitle()),
],
),
),
),
RichText(
text: TextSpan(
text: '活动时间:',
style: _textStyleTag(),
children: [
TextSpan(
text: subtitleSecond, style: _textStyleSubtitle()),
],
),
),
],
),
],
),
SizedBox(height: 40.w),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(left: 80.w),
child: ImageStack(
imageList: images,
imageRadius: 44.sp,
imageCount: 3,
imageBorderWidth: 1,
totalCount: 3,
),
),
SizedBox(width: 26.w),
Text(
'$peopleNum人已参加',
style: _textStyleSubtitle(),
),
],
),
InkWell(
onTap: () {
fun(imagePath, title, isOver, isVote, isVoteOver, images);
},
child: Container(
alignment: Alignment.center,
height: 44.w,
width: 120.w,
padding: EdgeInsets.symmetric(
vertical: 7.w,
),
decoration: BoxDecoration(
color: Color(0xffffc40c),
borderRadius: BorderRadius.all(Radius.circular(22)),
),
child: Text(
'去参与',
style: _textStyleSubtitle(),
),
),
)
],
),
],
),
);
}
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: _listView
.asMap()
.keys
.map((index) => _activityCard(
_listView[index]['imagePath'],
_listView[index]['title'],
_listView[index]['subtitleFirst'],
_listView[index]['subtitleSecond'],
_listView[index]['peopleNum'],
_listView[index]['isOver'],
_listView[index]['isVote'],
_listView[index]['isVoteOver'],
index,
))
.toList(),
),
);
}
}