@@ -0,0 +1,33 @@ | |||
import 'package:flutter/material.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/good_share_msg.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_edit.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_item.dart'; | |||
class GoodsShareImage extends StatefulWidget { | |||
@override | |||
_GoodsShareImageState createState() => _GoodsShareImageState(); | |||
} | |||
class _GoodsShareImageState extends State<GoodsShareImage> { | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(top: 10), | |||
child: SingleChildScrollView( | |||
child: Column( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
mainAxisAlignment: MainAxisAlignment.start, | |||
children: <Widget>[ | |||
GoodsShareItem( | |||
child: GoodsShareEdit( | |||
'至高减600【24期免息】xiaomi/小米10Pro 5G手机骁龙865智能游戏拍照手机官方旗舰店小米10青春正品k305g现货\n\n原价】3999元\n券后价】3989元\n【用智莺生活再省】19.74元\n-------------\n復製(FRH51Lu9hYF),\n用【Tao·寳】下单\n-------------\n商品链接】\nhttp://hsrj3.cn/ps/FRH51Lu9hYF.html)\n'), | |||
), | |||
GoodsShareItem( | |||
child: GoodsShareMessage('点击编辑模板可以自定义分享文案哦😄😄'), | |||
), | |||
], | |||
), | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,43 @@ | |||
import 'package:flutter/material.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/good_share_msg.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_edit.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_item.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_link_widget.dart'; | |||
class GoodsShareLink extends StatefulWidget { | |||
@override | |||
_GoodsShareLinkState createState() => _GoodsShareLinkState(); | |||
} | |||
class _GoodsShareLinkState extends State<GoodsShareLink> { | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(top: 10), | |||
child: SingleChildScrollView( | |||
child: Column( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
mainAxisAlignment: MainAxisAlignment.start, | |||
children: <Widget>[ | |||
GoodsShareItem( | |||
child: GoodsShareLinkWidget( | |||
title: '小米10至尊纪念版5g手机120X变焦骁龙865小米官方旗舰店小米手机', | |||
desc: '【原价】3999元【券后3989元【用嗨如意再省】19.74元復製(FRH51Lu9hYF', | |||
imgGoods: '', | |||
icon: '', | |||
name: '智莺生活', | |||
), | |||
), | |||
GoodsShareItem( | |||
child: GoodsShareEdit( | |||
'至高减600【24期免息】xiaomi/小米10Pro 5G手机骁龙865智能游戏拍照手机官方旗舰店小米10青春正品k305g现货\n\n原价】3999元\n券后价】3989元\n【用智莺生活再省】19.74元\n-------------\n復製(FRH51Lu9hYF),\n用【Tao·寳】下单\n-------------\n商品链接】\nhttp://hsrj3.cn/ps/FRH51Lu9hYF.html)\n'), | |||
), | |||
GoodsShareItem( | |||
child: GoodsShareMessage('点击编辑模板可以自定义分享文案哦😄😄'), | |||
), | |||
], | |||
), | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
import 'package:flutter/material.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_item.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_miniprogram_widget.dart'; | |||
class GoodsShareMiniprogram extends StatefulWidget { | |||
@override | |||
_GoodsShareMiniprogramState createState() => _GoodsShareMiniprogramState(); | |||
} | |||
class _GoodsShareMiniprogramState extends State<GoodsShareMiniprogram> { | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(top: 10), | |||
child: SingleChildScrollView( | |||
child: Column( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
mainAxisAlignment: MainAxisAlignment.start, | |||
children: <Widget>[ | |||
GoodsShareItem( | |||
child: GoodsShareMiniprogramWidget( | |||
title: '小米10至尊纪念版5g手机120X变焦骁龙865小米官方旗舰店小米手机', | |||
imgGoods: '', | |||
icon: '', | |||
name: '智莺生活', | |||
), | |||
), | |||
], | |||
), | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,231 @@ | |||
import 'package:flutter/cupertino.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/goods_share_image/goods_share_image.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/goods_share_link/goods_share_link.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/goods_share_miniprogram/goods_share_miniprogram.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/widgets/goods_share_alert_content.dart'; | |||
import 'package:zhiying_base_widget/widgets/share/share_alert.dart'; | |||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||
class GoodsSharePage extends StatefulWidget { | |||
@override | |||
_GoodsSharePageState createState() => _GoodsSharePageState(); | |||
} | |||
class _GoodsSharePageState extends State<GoodsSharePage> | |||
with TickerProviderStateMixin { | |||
TabController _tabController; | |||
List<Widget> _tabs; | |||
List<Widget> _contents; | |||
@override | |||
void initState() { | |||
_tabController = TabController(length: 3, vsync: this); | |||
_tabs = [ | |||
_createTabItem('分享图文'), | |||
_createTabItem('分享链接'), | |||
_createTabItem('分享小程序'), | |||
]; | |||
_contents = [ | |||
GoodsShareImage(), | |||
GoodsShareLink(), | |||
GoodsShareMiniprogram(), | |||
]; | |||
super.initState(); | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
return Scaffold( | |||
backgroundColor: Color(0xfff8f8f8), | |||
appBar: _createNav(), | |||
body: Column( | |||
children: <Widget>[ | |||
_createCommission(), | |||
Expanded(child: _createContent()), | |||
_createBottom(), | |||
], | |||
), | |||
); | |||
} | |||
// 导航栏 | |||
Widget _createNav() { | |||
return CupertinoNavigationBar( | |||
border: Border( | |||
bottom: BorderSide( | |||
width: 0.0, // One physical pixel. | |||
style: BorderStyle.none, | |||
), | |||
), | |||
// backgroundColor: HexColor.fromHex('#ffffff'), | |||
leading: Navigator.canPop(context) | |||
? GestureDetector( | |||
child: Container( | |||
padding: EdgeInsets.zero, | |||
child: Icon( | |||
Icons.arrow_back_ios, | |||
size: 20, | |||
), | |||
), | |||
onTap: () { | |||
if (Navigator.canPop(context)) { | |||
Navigator.pop(context); | |||
} | |||
}, | |||
) | |||
: Container(), | |||
middle: Text( | |||
'分享商品', | |||
style: TextStyle( | |||
fontSize: 15, | |||
color: HexColor.fromHex('#333333'), | |||
), | |||
), | |||
); | |||
} | |||
Widget _createCommission() { | |||
return Container( | |||
margin: EdgeInsets.only(left: 12.5, right: 12.5, top: 4, bottom: 4), | |||
padding: EdgeInsets.only(left: 10, right: 10), | |||
width: double.infinity, | |||
height: 32, | |||
decoration: BoxDecoration( | |||
color: Colors.white, borderRadius: BorderRadius.circular(8)), | |||
child: Row( | |||
crossAxisAlignment: CrossAxisAlignment.center, | |||
children: <Widget>[ | |||
Container( | |||
width: 20, | |||
height: 20, | |||
margin: EdgeInsets.only(right: 10), | |||
decoration: BoxDecoration( | |||
color: Colors.redAccent, | |||
borderRadius: BorderRadius.circular(10)), | |||
), | |||
Text( | |||
'奖励预估收益 ¥ 12.35 元', | |||
style: TextStyle( | |||
fontSize: 13, | |||
fontWeight: FontWeight.bold, | |||
color: Color(0xff333333)), | |||
), | |||
], | |||
), | |||
); | |||
} | |||
Widget _createContent() { | |||
return Container( | |||
margin: EdgeInsets.only(left: 12.5, right: 12.5, top: 4, bottom: 4), | |||
width: double.infinity, | |||
height: double.infinity, | |||
decoration: BoxDecoration( | |||
color: Colors.white, borderRadius: BorderRadius.circular(8)), | |||
child: Column( | |||
children: <Widget>[ | |||
Container( | |||
height: 40, | |||
width: double.infinity, | |||
child: TabBar( | |||
controller: _tabController, | |||
tabs: _tabs, | |||
indicatorColor: Color(0xffff4242), | |||
indicatorSize: TabBarIndicatorSize.label, | |||
), | |||
), | |||
Expanded( | |||
child: TabBarView( | |||
controller: _tabController, | |||
children: _contents, | |||
), | |||
) | |||
], | |||
), | |||
); | |||
} | |||
Widget _createBottom() { | |||
return SafeArea( | |||
child: Container( | |||
margin: EdgeInsets.only(left: 12.5, right: 12.5, top: 4, bottom: 4), | |||
child: Row( | |||
children: <Widget>[ | |||
Container( | |||
width: 95, | |||
height: 36, | |||
decoration: BoxDecoration( | |||
color: Colors.red, | |||
borderRadius: BorderRadius.circular(18), | |||
), | |||
child: Center( | |||
child: Text( | |||
'仅复制口令', | |||
style: TextStyle(color: Colors.white), | |||
), | |||
), | |||
), | |||
Container( | |||
margin: EdgeInsets.only(left: 5), | |||
width: 95, | |||
height: 36, | |||
decoration: BoxDecoration( | |||
color: Colors.orangeAccent, | |||
borderRadius: BorderRadius.circular(18), | |||
), | |||
child: Center( | |||
child: Text( | |||
'保存选图', | |||
style: TextStyle(color: Colors.white), | |||
), | |||
), | |||
), | |||
Expanded( | |||
child: GestureDetector( | |||
child: Container( | |||
margin: EdgeInsets.only(left: 5), | |||
// width: 95, | |||
height: 36, | |||
decoration: BoxDecoration( | |||
color: Colors.amber, | |||
borderRadius: BorderRadius.circular(18), | |||
), | |||
child: Center( | |||
child: Text( | |||
'分享选中素材', | |||
style: TextStyle(color: Colors.white), | |||
), | |||
), | |||
), | |||
onTap: () { | |||
_showShare(); | |||
}, | |||
), | |||
), | |||
], | |||
), | |||
), | |||
); | |||
} | |||
Widget _createTabItem(String title, {bool isSelected = false}) { | |||
return Text( | |||
title, | |||
style: TextStyle( | |||
fontSize: 13, | |||
color: isSelected ? Color(0xffff4242) : Color(0xff333333), | |||
fontWeight: FontWeight.bold, | |||
), | |||
); | |||
} | |||
void _showShare() async { | |||
showCupertinoModalPopup( | |||
context: context, | |||
builder: (context) => ShareAlert( | |||
child: GoodsShareAlertContent(), | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
import 'package:flutter/material.dart'; | |||
class GoodsShareMessage extends StatelessWidget { | |||
final String message; | |||
const GoodsShareMessage(this.message, {Key key}) : super(key: key); | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(left: 10, right: 10), | |||
padding: EdgeInsets.only(left: 16, top: 10, right: 16, bottom: 10), | |||
decoration: BoxDecoration( | |||
color: Color(0xfff8f8f8), borderRadius: BorderRadius.circular(10)), | |||
width: double.infinity, | |||
child: Text( | |||
message, | |||
style: TextStyle( | |||
fontSize: 11, | |||
fontWeight: FontWeight.bold, | |||
), | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,43 @@ | |||
import 'package:flutter/material.dart'; | |||
class GoodsShareAlertContent extends StatelessWidget { | |||
@override | |||
Widget build(BuildContext context) { | |||
return UnconstrainedBox( | |||
child: Container( | |||
width: 220, | |||
padding: EdgeInsets.all(20), | |||
decoration: BoxDecoration( | |||
color: Colors.white, | |||
borderRadius: BorderRadius.circular(12), | |||
), | |||
child: Column( | |||
children: <Widget>[ | |||
Container( | |||
width: 92, | |||
height: 92, | |||
color: Colors.redAccent, | |||
margin: EdgeInsets.only(top: 20, bottom: 20), | |||
), | |||
Text( | |||
'保存成功', | |||
style: TextStyle( | |||
fontWeight: FontWeight.bold, | |||
color: Color(0xff333333), | |||
fontSize: 18, | |||
), | |||
), | |||
Text( | |||
'快将保存的图片和文案与\n小伙伴分享吧', | |||
textAlign: TextAlign.center, | |||
style: TextStyle( | |||
color: Color(0xff999999), | |||
fontSize: 11, | |||
), | |||
), | |||
], | |||
), | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,121 @@ | |||
import 'package:flutter/material.dart'; | |||
class GoodsShareEdit extends StatelessWidget { | |||
final String message; | |||
const GoodsShareEdit(this.message, {Key key}) : super(key: key); | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(left: 10, right: 10), | |||
// padding: EdgeInsets.only(left: 16, top: 10, right: 16, bottom: 10), | |||
decoration: BoxDecoration( | |||
color: Color(0xfff8f8f8), borderRadius: BorderRadius.circular(10)), | |||
width: double.infinity, | |||
child: Column( | |||
children: <Widget>[ | |||
Padding( | |||
padding: const EdgeInsets.only(left: 16, top: 10, right: 16), | |||
child: Text( | |||
message, | |||
style: TextStyle( | |||
fontSize: 11, | |||
fontWeight: FontWeight.bold, | |||
), | |||
), | |||
), | |||
Container( | |||
padding: | |||
const EdgeInsets.only(left: 16, top: 6, bottom: 6, right: 16), | |||
width: double.infinity, | |||
child: Wrap( | |||
spacing: 10, | |||
runSpacing: 6, | |||
children: <Widget>[ | |||
GoodsShareCheckButton( | |||
'标题', | |||
isSelected: true, | |||
), | |||
GoodsShareCheckButton( | |||
'收益', | |||
isSelected: false, | |||
), | |||
GoodsShareCheckButton( | |||
'邀请码', | |||
isSelected: true, | |||
), | |||
GoodsShareCheckButton( | |||
'链接', | |||
isSelected: true, | |||
), | |||
], | |||
), | |||
), | |||
Container( | |||
width: double.infinity, | |||
height: 0.5, | |||
color: Color(0xffececec), | |||
), | |||
Container( | |||
height: 44, | |||
child: Row( | |||
children: <Widget>[ | |||
Expanded( | |||
child: GoodsShareCheckButton( | |||
'编辑模版', | |||
isSelected: true, | |||
), | |||
), | |||
Container( | |||
width: 0.5, | |||
height: 20, | |||
color: Color(0xffececec), | |||
), | |||
Expanded( | |||
child: GoodsShareCheckButton( | |||
'复制文案', | |||
isSelected: false, | |||
), | |||
), | |||
], | |||
), | |||
) | |||
], | |||
), | |||
); | |||
} | |||
} | |||
class GoodsShareCheckButton extends StatelessWidget { | |||
final String title; | |||
final bool isSelected; | |||
const GoodsShareCheckButton(this.title, {Key key, this.isSelected = true}) | |||
: super(key: key); | |||
@override | |||
Widget build(BuildContext context) { | |||
return UnconstrainedBox( | |||
child: Row( | |||
children: <Widget>[ | |||
Container( | |||
width: 16, | |||
height: 16, | |||
margin: EdgeInsets.only(right: 6), | |||
decoration: BoxDecoration( | |||
color: isSelected ? Colors.redAccent : Colors.black12, | |||
borderRadius: BorderRadius.circular(8), | |||
), | |||
), | |||
Text( | |||
title, | |||
style: TextStyle( | |||
fontSize: 11, | |||
color: isSelected ? Colors.redAccent : Color(0xff333333)), | |||
), | |||
], | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,38 @@ | |||
import 'package:flutter/material.dart'; | |||
class GoodsShareItem extends StatelessWidget { | |||
final Widget child; | |||
const GoodsShareItem({Key key, this.child}) : super(key: key); | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5), | |||
child: Row( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
children: <Widget>[ | |||
Container( | |||
width: 36, | |||
height: 36, | |||
decoration: BoxDecoration( | |||
color: Colors.red, | |||
borderRadius: BorderRadius.circular(18), | |||
), | |||
), | |||
Expanded( | |||
child: child ?? Container(), | |||
), | |||
Container( | |||
width: 18, | |||
height: 18, | |||
decoration: BoxDecoration( | |||
color: Colors.red, | |||
borderRadius: BorderRadius.circular(9), | |||
), | |||
), | |||
], | |||
), | |||
); | |||
} | |||
} |
@@ -0,0 +1,75 @@ | |||
import 'package:flutter/material.dart'; | |||
class GoodsShareLinkWidget extends StatelessWidget { | |||
final String title; | |||
final String desc; | |||
final String imgGoods; | |||
final String icon; | |||
final String name; | |||
const GoodsShareLinkWidget( | |||
{Key key, this.title, this.desc, this.imgGoods, this.icon, this.name}) | |||
: super(key: key); | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(left: 10, right: 10), | |||
padding: EdgeInsets.only(left: 16, top: 10, right: 16, bottom: 10), | |||
decoration: BoxDecoration( | |||
color: Color(0xfff8f8f8), borderRadius: BorderRadius.circular(10)), | |||
width: double.infinity, | |||
child: Column( | |||
children: <Widget>[ | |||
Text( | |||
title ?? '', | |||
style: TextStyle( | |||
color: Color(0xff333333), | |||
fontWeight: FontWeight.bold, | |||
fontSize: 11, | |||
), | |||
), | |||
Row( | |||
children: <Widget>[ | |||
Expanded( | |||
child: Text( | |||
title ?? '', | |||
maxLines: 3, | |||
style: TextStyle( | |||
color: Color(0xff999999), | |||
fontWeight: FontWeight.normal, | |||
fontSize: 11, | |||
), | |||
), | |||
), | |||
Container( | |||
width: 48, | |||
height: 48, | |||
color: Colors.redAccent, | |||
) | |||
], | |||
), | |||
Container( | |||
margin: EdgeInsets.only(top: 6, bottom: 6), | |||
width: double.infinity, | |||
height: 0.5, | |||
color: Color(0xffeaeaea), | |||
), | |||
Row( | |||
children: <Widget>[ | |||
Container( | |||
margin: EdgeInsets.only(right: 6), | |||
width: 15, | |||
height: 15, | |||
color: Colors.redAccent, | |||
), | |||
Text( | |||
name, | |||
style: TextStyle(fontSize: 11, color: Color(0xff999999)), | |||
) | |||
], | |||
) | |||
], | |||
)); | |||
} | |||
} |
@@ -0,0 +1,69 @@ | |||
import 'package:flutter/material.dart'; | |||
class GoodsShareMiniprogramWidget extends StatelessWidget { | |||
final String title; | |||
final String imgGoods; | |||
final String icon; | |||
final String name; | |||
const GoodsShareMiniprogramWidget( | |||
{Key key, this.title, this.imgGoods, this.icon, this.name}) | |||
: super(key: key); | |||
@override | |||
Widget build(BuildContext context) { | |||
return Container( | |||
margin: EdgeInsets.only(left: 10, right: 10), | |||
padding: EdgeInsets.only(left: 16, top: 10, right: 16, bottom: 10), | |||
decoration: BoxDecoration( | |||
color: Color(0xfff8f8f8), borderRadius: BorderRadius.circular(10)), | |||
width: double.infinity, | |||
child: Column( | |||
children: <Widget>[ | |||
Row( | |||
children: <Widget>[ | |||
Container( | |||
margin: EdgeInsets.only(right: 6), | |||
width: 15, | |||
height: 15, | |||
color: Colors.redAccent, | |||
), | |||
Text( | |||
name, | |||
style: TextStyle(fontSize: 11, color: Color(0xff999999)), | |||
) | |||
], | |||
), | |||
Text( | |||
title ?? '', | |||
maxLines: 2, | |||
style: TextStyle( | |||
color: Color(0xff333333), | |||
fontWeight: FontWeight.bold, | |||
fontSize: 11, | |||
), | |||
), | |||
Container( | |||
margin: EdgeInsets.only(top: 10, bottom: 10), | |||
width: double.infinity, | |||
height: 180, | |||
color: Colors.redAccent, | |||
), | |||
Row( | |||
children: <Widget>[ | |||
Container( | |||
margin: EdgeInsets.only(right: 6), | |||
width: 15, | |||
height: 15, | |||
color: Colors.redAccent, | |||
), | |||
Text( | |||
'小程序', | |||
style: TextStyle(fontSize: 11, color: Color(0xff333333)), | |||
) | |||
], | |||
), | |||
], | |||
)); | |||
} | |||
} |
@@ -1,6 +1,7 @@ | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter_bloc/flutter_bloc.dart'; | |||
import 'package:zhiying_base_widget/pages/goods_share_page/goods_share_page.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/footer/bloc/goods_details_footer_bloc.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/footer/bloc/goods_details_footer_repository.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/footer/goods_details_footer_sk.dart'; | |||
@@ -45,7 +46,10 @@ class _GooddsDetailsFooterContainerState | |||
void _collectOnClick() {} | |||
/// 分享 | |||
void _shareOnClick() {} | |||
void _shareOnClick() { | |||
Navigator.of(context) | |||
.push(MaterialPageRoute(builder: (context) => GoodsSharePage())); | |||
} | |||
/// 自购省 | |||
void _savemoneyOnClick() {} | |||
@@ -0,0 +1,135 @@ | |||
import 'dart:ui'; | |||
import 'package:flutter/material.dart'; | |||
class ShareAlert extends StatelessWidget { | |||
final Widget child; | |||
const ShareAlert({Key key, this.child}) : super(key: key); // 中间视图 | |||
@override | |||
Widget build(BuildContext context) { | |||
return GestureDetector( | |||
child: Scaffold( | |||
backgroundColor: Colors.transparent, | |||
body: BackdropFilter( | |||
filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), //背景 | |||
child: Container( | |||
child: Column( | |||
children: <Widget>[ | |||
Expanded( | |||
child: Center(child: child ?? Container()), | |||
), | |||
_ShareAlertContent(), | |||
], | |||
), | |||
), // 模糊化 | |||
), | |||
), | |||
onTap: () { | |||
Navigator.of(context).pop(); | |||
}, | |||
); | |||
} | |||
} | |||
class _ShareAlertContent extends StatelessWidget { | |||
@override | |||
Widget build(BuildContext context) { | |||
return GestureDetector( | |||
onTap: () {}, | |||
child: Container( | |||
width: double.infinity, | |||
decoration: BoxDecoration( | |||
color: Colors.white, | |||
borderRadius: BorderRadius.only( | |||
topLeft: Radius.circular(12), | |||
topRight: Radius.circular(12), | |||
), | |||
), | |||
child: SafeArea( | |||
top: false, | |||
child: Column( | |||
children: <Widget>[ | |||
Container( | |||
margin: EdgeInsets.only(top: 8, bottom: 8), | |||
width: 62, | |||
height: 4, | |||
decoration: BoxDecoration( | |||
color: Color(0xffd8d8d8), | |||
borderRadius: BorderRadius.circular(2)), | |||
), | |||
Text( | |||
'分享至', | |||
style: TextStyle( | |||
fontSize: 15, | |||
color: Color(0xff333333), | |||
fontWeight: FontWeight.bold), | |||
), | |||
Container( | |||
margin: | |||
EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10), | |||
child: _createIcons(), | |||
), | |||
GestureDetector( | |||
child: Container( | |||
margin: EdgeInsets.only(left: 12, right: 12, bottom: 10), | |||
padding: EdgeInsets.all(12), | |||
decoration: BoxDecoration( | |||
color: Color(0xfff3f3f3), | |||
borderRadius: BorderRadius.circular(8)), | |||
child: Center( | |||
child: Text( | |||
'取消', | |||
style: TextStyle( | |||
fontSize: 12, | |||
fontWeight: FontWeight.bold, | |||
color: Color(0xff999999)), | |||
), | |||
), | |||
), | |||
onTap: () { | |||
Navigator.of(context).pop(); | |||
}, | |||
) | |||
], | |||
), | |||
), | |||
), | |||
); | |||
} | |||
Widget _createIcons() { | |||
return Wrap( | |||
spacing: 10, | |||
runSpacing: 10, | |||
children: List.generate(6, (index) { | |||
return _createIcon(); | |||
}), | |||
); | |||
} | |||
Widget _createIcon() { | |||
return Container( | |||
width: 60, | |||
child: Column( | |||
children: <Widget>[ | |||
Container( | |||
width: 40, | |||
height: 40, | |||
decoration: BoxDecoration( | |||
borderRadius: BorderRadius.circular(20), | |||
color: Colors.redAccent), | |||
), | |||
Padding( | |||
padding: const EdgeInsets.only(top: 2, bottom: 2), | |||
child: Text( | |||
'分享平台', | |||
style: TextStyle(fontSize: 12, color: Color(0xff333333)), | |||
), | |||
), | |||
], | |||
), | |||
); | |||
} | |||
} |