|
|
@@ -4,6 +4,7 @@ import 'CreateRoom.dart';
|
|
|
import 'RoomList.dart';
|
|
|
import 'rankList.dart';
|
|
|
import 'roomInfo.dart';
|
|
|
+import 'ShoppingMall.dart';
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
import 'package:flutter_swiper/flutter_swiper.dart';
|
|
|
import '../model/GameInfoSeasons.dart';
|
|
|
@@ -73,11 +74,16 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
|
|
|
void getOneRoom() async {
|
|
|
Toast.show(context, '加载中', -1, 'loading');
|
|
|
- Result res = await HttpManager.get("houseInfo/getOne", data: {'statusFlag': 0});
|
|
|
+ Result res =
|
|
|
+ await HttpManager.get("houseInfo/getOne", data: {'statusFlag': 0});
|
|
|
Toast.hide();
|
|
|
if (res.success) {
|
|
|
if (res.data != null) {
|
|
|
- Navigator.push(context, new CupertinoPageRoute(builder: (context) => new RoomInfo(roomId: res.data['id'].toString())));
|
|
|
+ Navigator.push(
|
|
|
+ context,
|
|
|
+ new CupertinoPageRoute(
|
|
|
+ builder: (context) =>
|
|
|
+ new RoomInfo(roomId: res.data['id'].toString())));
|
|
|
} else {
|
|
|
showBackDialog();
|
|
|
}
|
|
|
@@ -85,7 +91,10 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
}
|
|
|
|
|
|
void getUnreadMsg() async {
|
|
|
- Result res = await HttpManager.get("systemNotice/unread", data: {'userId': StoreProvider.of<AppState>(context).state.userInfo.id, 'statusFlag': 0});
|
|
|
+ Result res = await HttpManager.get("systemNotice/unread", data: {
|
|
|
+ 'userId': StoreProvider.of<AppState>(context).state.userInfo.id,
|
|
|
+ 'statusFlag': 0
|
|
|
+ });
|
|
|
if (res.success && res.data != null) {
|
|
|
if (res.data > 0) {
|
|
|
setState(() {
|
|
|
@@ -132,8 +141,10 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
width: double.infinity,
|
|
|
height: double.infinity,
|
|
|
decoration: BoxDecoration(
|
|
|
- gradient: LinearGradient(
|
|
|
- colors: [Color.fromARGB(255, 177, 59, 56), Color.fromARGB(255, 147, 64, 61)], begin: Alignment.topCenter, end: Alignment.bottomCenter)),
|
|
|
+ gradient: LinearGradient(colors: [
|
|
|
+ Color.fromARGB(255, 177, 59, 56),
|
|
|
+ Color.fromARGB(255, 147, 64, 61)
|
|
|
+ ], begin: Alignment.topCenter, end: Alignment.bottomCenter)),
|
|
|
child: SafeArea(
|
|
|
child: centerWidget(context),
|
|
|
),
|
|
|
@@ -142,10 +153,52 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
Future.value(true);
|
|
|
},
|
|
|
),
|
|
|
+ floatingActionButton: floatWidget(),
|
|
|
+ floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget floatWidget() {
|
|
|
+ return Container(
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ borderRadius: BorderRadius.all(Radius.circular(100)),
|
|
|
+ border: Border.all(width: 1, color: Color(0xFF1B1C28))),
|
|
|
+ width: 166,
|
|
|
+ height: 166,
|
|
|
+ margin: EdgeInsets.only(bottom: 84),
|
|
|
+ child: CircleAvatar(
|
|
|
+ backgroundImage: AssetImage('images/centerBtn.png'),
|
|
|
+ child: ClipOval(
|
|
|
+ child: Material(
|
|
|
+ color: Colors.transparent,
|
|
|
+ child: InkWell(
|
|
|
+ child: Container(
|
|
|
+ width: 166,
|
|
|
+ height: 166,
|
|
|
+ child: Center(
|
|
|
+ child: UnconstrainedBox(
|
|
|
+ child: Image.asset('images/join.png', width: 85),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ onTap: () {
|
|
|
+ getOneRoom();
|
|
|
+ },
|
|
|
+ )))),
|
|
|
);
|
|
|
}
|
|
|
|
|
|
Widget centerWidget(BuildContext context) {
|
|
|
+ double width = MediaQuery.of(context).size.width;
|
|
|
+ double height = MediaQuery.of(context).size.height;
|
|
|
+ String endSTring = '';
|
|
|
+ if (seasonList.length > 0) {
|
|
|
+ int _time = seasonList[nowIndex].competitionSeason.endTime -
|
|
|
+ DateTime.now().millisecondsSinceEpoch;
|
|
|
+ _time = _time ~/ 1000 ~/ 3600 ~/ 24;
|
|
|
+ endSTring = '倒计时 ' + _time.toString() + ' 天';
|
|
|
+ }
|
|
|
+
|
|
|
return Column(
|
|
|
children: <Widget>[
|
|
|
Expanded(
|
|
|
@@ -162,8 +215,13 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
Navigator.push(
|
|
|
context,
|
|
|
new CupertinoPageRoute(
|
|
|
- builder: (context) =>
|
|
|
- new RankList(raceId: seasonList[index].competitionSeason.id, gameId: seasonList[index].competitionSeason.gameId)));
|
|
|
+ builder: (context) => new RankList(
|
|
|
+ raceId: seasonList[index]
|
|
|
+ .competitionSeason
|
|
|
+ .id,
|
|
|
+ gameId: seasonList[index]
|
|
|
+ .competitionSeason
|
|
|
+ .gameId)));
|
|
|
},
|
|
|
onIndexChanged: (index) {
|
|
|
setState(() {
|
|
|
@@ -172,72 +230,52 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
},
|
|
|
itemBuilder: (context, index) {
|
|
|
return Center(
|
|
|
- child: SizedBox(
|
|
|
- width: 214,
|
|
|
- height: 214,
|
|
|
- child: Stack(
|
|
|
+ child: Container(
|
|
|
+ width: 0.64 * (height - 334),
|
|
|
+ height: 0.64 * (height - 334),
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ image: DecorationImage(
|
|
|
+ image: AssetImage(
|
|
|
+ "images/home_icon_yuan.png"),
|
|
|
+ fit: BoxFit.contain)),
|
|
|
+ child: Column(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ children: <Widget>[
|
|
|
+ Text('赛季奖金',
|
|
|
+ style: TextStyle(
|
|
|
+ color: Color(0xFFFFFFFF),
|
|
|
+ fontSize: 13)),
|
|
|
+ Container(
|
|
|
+ height: 0.1 * (height - 334),
|
|
|
+ ),
|
|
|
+ Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
+ children: _moneyList(),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ height: 0.06 * (height - 334),
|
|
|
+ ),
|
|
|
+ Column(
|
|
|
children: <Widget>[
|
|
|
- Image.asset("images/home_icon_yuan.png"),
|
|
|
- Center(
|
|
|
- child: Row(
|
|
|
- mainAxisAlignment: MainAxisAlignment.center,
|
|
|
- crossAxisAlignment: CrossAxisAlignment.baseline,
|
|
|
- textBaseline: TextBaseline.alphabetic,
|
|
|
- children: <Widget>[
|
|
|
- Text(
|
|
|
- (seasonList[index].competitionSeason.bonus / 1000).toStringAsFixed(1),
|
|
|
- style: TextStyle(
|
|
|
- color: Colors.white,
|
|
|
- fontSize: 68,
|
|
|
- fontFamily: 'DINEngschrift',
|
|
|
- ),
|
|
|
- ),
|
|
|
- Text(
|
|
|
- "K",
|
|
|
- style: TextStyle(
|
|
|
- color: Colors.white,
|
|
|
- fontSize: 36,
|
|
|
- fontFamily: 'DINEngschrift',
|
|
|
- ),
|
|
|
- )
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
- Positioned(
|
|
|
- bottom: 30,
|
|
|
- left: 0,
|
|
|
- right: 0,
|
|
|
- child: Column(
|
|
|
- children: <Widget>[
|
|
|
- // Text(
|
|
|
- // "当前排名",
|
|
|
- // style: TextStyle(
|
|
|
- // color: Colors.white, fontSize: 13),
|
|
|
- // ),
|
|
|
- // Text(
|
|
|
- // "98686",
|
|
|
- // style: TextStyle(
|
|
|
- // color: Colors.white, fontSize: 13),
|
|
|
- // )
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
- Center(
|
|
|
- child: MaterialButton(
|
|
|
- child: Text("data"),
|
|
|
- onPressed: () async {
|
|
|
- ScreenStreamPlugin.start('rtmp://123');
|
|
|
- },
|
|
|
- ),
|
|
|
- )
|
|
|
+ Text('当前排名',
|
|
|
+ style: TextStyle(
|
|
|
+ color: Color(0xFFFFFFFF),
|
|
|
+ fontSize: 13)),
|
|
|
+ Text('2',
|
|
|
+ style: TextStyle(
|
|
|
+ color: Color(0xFFFFFFFF),
|
|
|
+ fontSize: 13))
|
|
|
],
|
|
|
- )),
|
|
|
- );
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ));
|
|
|
},
|
|
|
)
|
|
|
: Container()),
|
|
|
Positioned(
|
|
|
- left: 0,
|
|
|
+ left: 10,
|
|
|
top: 0,
|
|
|
width: 48,
|
|
|
height: 48,
|
|
|
@@ -250,14 +288,14 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
},
|
|
|
child: Padding(
|
|
|
padding: EdgeInsets.all(12),
|
|
|
- child: Image.asset("images/home_icon_wode.png"),
|
|
|
+ child: Image.asset("images/person.png",width: 24,),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
Positioned(
|
|
|
- right: 0,
|
|
|
+ right: 10,
|
|
|
top: 0,
|
|
|
width: 48,
|
|
|
height: 48,
|
|
|
@@ -265,29 +303,51 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
color: Colors.transparent,
|
|
|
child: InkWell(
|
|
|
onTap: () {
|
|
|
- Navigator.push(context, new CupertinoPageRoute(builder: (context) => new Setting()));
|
|
|
+ Navigator.push(
|
|
|
+ context,
|
|
|
+ new CupertinoPageRoute(
|
|
|
+ builder: (context) => new Setting()));
|
|
|
},
|
|
|
child: Padding(
|
|
|
padding: EdgeInsets.all(12),
|
|
|
- child: Image.asset("images/home_icon_shezhi.png"),
|
|
|
+ child: Image.asset("images/setting.png",width: 24),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
Positioned(
|
|
|
- bottom: 11,
|
|
|
+ top: 15,
|
|
|
left: 0,
|
|
|
right: 0,
|
|
|
child: Column(
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
children: <Widget>[
|
|
|
+ // Text(
|
|
|
+ // seasonList.length > 0
|
|
|
+ // ? seasonList[nowIndex].competitionSeason.season
|
|
|
+ // : '',
|
|
|
+ // style: TextStyle(color: Colors.white, fontSize: 14),
|
|
|
+ // ),
|
|
|
Text(
|
|
|
- seasonList.length > 0 ? seasonList[nowIndex].competitionSeason.season : '',
|
|
|
+ seasonList.length > 0
|
|
|
+ ? seasonList[nowIndex].gameName
|
|
|
+ : '',
|
|
|
style: TextStyle(color: Colors.white, fontSize: 14),
|
|
|
- ),
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Positioned(
|
|
|
+ bottom: 20,
|
|
|
+ left: 0,
|
|
|
+ right: 0,
|
|
|
+ child: Column(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
+ children: <Widget>[
|
|
|
Text(
|
|
|
- seasonList.length > 0 ? seasonList[nowIndex].gameName : '',
|
|
|
+ endSTring,
|
|
|
style: TextStyle(color: Colors.white, fontSize: 14),
|
|
|
)
|
|
|
],
|
|
|
@@ -298,13 +358,8 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
),
|
|
|
Builder(
|
|
|
builder: (BuildContext context) {
|
|
|
- double width = MediaQuery.of(context).size.width;
|
|
|
- double height = MediaQuery.of(context).size.height;
|
|
|
double aspectRatio = 1;
|
|
|
- // if (height / width < 20 / 9) {
|
|
|
-
|
|
|
- // }
|
|
|
- aspectRatio = width / (height - 350);
|
|
|
+ aspectRatio = width / 334;
|
|
|
return Container(
|
|
|
child: GridView.count(
|
|
|
physics: new BouncingScrollPhysics(),
|
|
|
@@ -313,15 +368,19 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
childAspectRatio: aspectRatio,
|
|
|
children: <Widget>[
|
|
|
HomeMenu(
|
|
|
- "images/home_icon_fangjian.png",
|
|
|
- "创建房间",
|
|
|
+ "images/Create.png",
|
|
|
+ 57,
|
|
|
onTapHomeMenu: () {
|
|
|
Navigator.of(context).push(PageRouteBuilder(
|
|
|
opaque: false,
|
|
|
transitionDuration: Duration(milliseconds: 300),
|
|
|
- transitionsBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child) {
|
|
|
+ transitionsBuilder: (BuildContext context,
|
|
|
+ Animation<double> animation,
|
|
|
+ Animation<double> secondaryAnimation,
|
|
|
+ Widget child) {
|
|
|
return FadeTransition(
|
|
|
- opacity: CurvedAnimation(parent: animation, curve: Curves.linear),
|
|
|
+ opacity: CurvedAnimation(
|
|
|
+ parent: animation, curve: Curves.linear),
|
|
|
child: child,
|
|
|
);
|
|
|
},
|
|
|
@@ -331,30 +390,40 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
},
|
|
|
),
|
|
|
HomeMenu(
|
|
|
- "images/home_icon_kuaisu.png",
|
|
|
- "快速进入",
|
|
|
- onTapHomeMenu: () {
|
|
|
- getOneRoom();
|
|
|
- },
|
|
|
- ),
|
|
|
- HomeMenu(
|
|
|
- "images/home_icon_sousuo.png",
|
|
|
- "搜索",
|
|
|
+ "images/search.png",
|
|
|
+ 31,
|
|
|
onTapHomeMenu: () {
|
|
|
- Navigator.push(context, new CupertinoPageRoute(builder: (context) => new RoomList()));
|
|
|
+ Navigator.push(
|
|
|
+ context,
|
|
|
+ new CupertinoPageRoute(
|
|
|
+ builder: (context) => new RoomList()));
|
|
|
},
|
|
|
),
|
|
|
HomeMenu(
|
|
|
- "images/home_icon_youjian.png",
|
|
|
- "邮件",
|
|
|
+ "images/email.png",
|
|
|
+ 41,
|
|
|
onTapHomeMenu: () async {
|
|
|
- bool result = await Navigator.push(context, new CupertinoPageRoute(builder: (context) => new TipList()));
|
|
|
+ bool result = await Navigator.push(
|
|
|
+ context,
|
|
|
+ new CupertinoPageRoute(
|
|
|
+ builder: (context) => new TipList()));
|
|
|
if (result) {
|
|
|
getUnreadMsg();
|
|
|
}
|
|
|
},
|
|
|
showBadge: showBadge,
|
|
|
),
|
|
|
+ HomeMenu(
|
|
|
+ "images/shoppingmall.png",
|
|
|
+ 39,
|
|
|
+ onTapHomeMenu: () {
|
|
|
+ Navigator.push(
|
|
|
+ context,
|
|
|
+ new CupertinoPageRoute(
|
|
|
+ builder: (context) => new ShoppingMall()));
|
|
|
+
|
|
|
+ },
|
|
|
+ ),
|
|
|
],
|
|
|
),
|
|
|
);
|
|
|
@@ -363,24 +432,117 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
|
|
|
],
|
|
|
);
|
|
|
}
|
|
|
+
|
|
|
+ List<Widget> _moneyList() {
|
|
|
+ double height = MediaQuery.of(context).size.height;
|
|
|
+ List<Widget> _list = [];
|
|
|
+
|
|
|
+ String bouns = (seasonList[nowIndex].competitionSeason.bonus / 1000)
|
|
|
+ .toStringAsFixed(1);
|
|
|
+ List<String> _bounsList = bouns.split('');
|
|
|
+ List<String> _imageList = [];
|
|
|
+ for (var item in _bounsList) {
|
|
|
+ print(item);
|
|
|
+ switch (item) {
|
|
|
+ case '0':
|
|
|
+ _imageList.add('images/0.png');
|
|
|
+ break;
|
|
|
+ case '1':
|
|
|
+ _imageList.add('images/1.png');
|
|
|
+ break;
|
|
|
+ case '2':
|
|
|
+ _imageList.add('images/2.png');
|
|
|
+ break;
|
|
|
+ case '3':
|
|
|
+ _imageList.add('images/3.png');
|
|
|
+ break;
|
|
|
+ case '4':
|
|
|
+ _imageList.add('images/4.png');
|
|
|
+ break;
|
|
|
+ case '5':
|
|
|
+ _imageList.add('images/5.png');
|
|
|
+ break;
|
|
|
+ case '6':
|
|
|
+ _imageList.add('images/6.png');
|
|
|
+ break;
|
|
|
+ case '7':
|
|
|
+ _imageList.add('images/7.png');
|
|
|
+ break;
|
|
|
+ case '8':
|
|
|
+ _imageList.add('images/8.png');
|
|
|
+ break;
|
|
|
+ case '9':
|
|
|
+ _imageList.add('images/9.png');
|
|
|
+ break;
|
|
|
+ case '.':
|
|
|
+ _imageList.add('.');
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (_bounsList.length == 0) {
|
|
|
+ _imageList.add('images/0.png');
|
|
|
+ }
|
|
|
+ print(_imageList.toString());
|
|
|
+
|
|
|
+ for (var item in _imageList) {
|
|
|
+ if (item != '.') {
|
|
|
+ _list.add(Image.asset(item, height: 0.18*0.64 * (height - 334)));
|
|
|
+ _list.add(Container(width: 5));
|
|
|
+ } else {
|
|
|
+ _list.add(Text(
|
|
|
+ ".",
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.white,
|
|
|
+ fontSize: 36,
|
|
|
+ fontFamily: 'DINEngschrift',
|
|
|
+ height: 0
|
|
|
+ ),
|
|
|
+ ));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _list.add(Text(
|
|
|
+ "K",
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.white,
|
|
|
+ fontSize: 24,
|
|
|
+ fontFamily: 'DINEngschrift',
|
|
|
+ height: .5
|
|
|
+ ),
|
|
|
+ ));
|
|
|
+ return _list;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
typedef void OnTapHomeMenu();
|
|
|
|
|
|
class HomeMenu extends StatelessWidget {
|
|
|
final String icon;
|
|
|
- final String title;
|
|
|
+ final double _width;
|
|
|
final OnTapHomeMenu onTapHomeMenu;
|
|
|
final bool showBadge;
|
|
|
- HomeMenu(this.icon, this.title, {this.onTapHomeMenu, this.showBadge = false});
|
|
|
+ HomeMenu(this.icon, this._width,
|
|
|
+ {this.onTapHomeMenu, this.showBadge = false});
|
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
|
return Container(
|
|
|
- decoration:
|
|
|
- BoxDecoration(gradient: LinearGradient(begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [Color(0xFF626C85), Color(0xFF3D3E6C)])),
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ gradient: LinearGradient(
|
|
|
+ begin: Alignment.topCenter,
|
|
|
+ end: Alignment.bottomCenter,
|
|
|
+ stops: [
|
|
|
+ 0.0,
|
|
|
+ 0.01,
|
|
|
+ 0.8
|
|
|
+ ],
|
|
|
+ colors: [
|
|
|
+ Color(0xFF7E89B7),
|
|
|
+ Color(0xFF4E536F),
|
|
|
+ Color(0xFF333558)
|
|
|
+ ])),
|
|
|
child: Container(
|
|
|
decoration: BoxDecoration(
|
|
|
border: Border(
|
|
|
+ // top: BorderSide(width: 2,color: Color(0xFF7E89B7)),
|
|
|
left: BorderSide(width: 0.5, color: Color(0x80000000)),
|
|
|
right: BorderSide(width: 0.5, color: Color(0x80000000)),
|
|
|
bottom: BorderSide(width: 1, color: Color(0x80000000)))),
|
|
|
@@ -388,38 +550,14 @@ class HomeMenu extends StatelessWidget {
|
|
|
color: Colors.transparent,
|
|
|
child: InkWell(
|
|
|
onTap: onTapHomeMenu,
|
|
|
- child: Column(
|
|
|
- mainAxisAlignment: MainAxisAlignment.center,
|
|
|
- children: <Widget>[
|
|
|
- Container(
|
|
|
- width: 44,
|
|
|
- height: 34,
|
|
|
- child: Stack(
|
|
|
- children: <Widget>[
|
|
|
- Image.asset(
|
|
|
- icon,
|
|
|
- fit: BoxFit.contain,
|
|
|
- width: 44,
|
|
|
- height: 34,
|
|
|
- ),
|
|
|
- Positioned(
|
|
|
- right: 0,
|
|
|
- top: 0,
|
|
|
- child: Container(
|
|
|
- width: showBadge ? 10 : 0,
|
|
|
- height: showBadge ? 10 : 0,
|
|
|
- decoration: BoxDecoration(color: Color.fromARGB(255, 239, 0, 9), borderRadius: BorderRadius.all(Radius.circular(10))),
|
|
|
- ),
|
|
|
- )
|
|
|
- ],
|
|
|
- ),
|
|
|
+ child: Container(
|
|
|
+ child: Center(
|
|
|
+ child: Image.asset(
|
|
|
+ icon,
|
|
|
+ fit: BoxFit.contain,
|
|
|
+ width: _width,
|
|
|
),
|
|
|
- Text(
|
|
|
- title,
|
|
|
- style: TextStyle(color: Colors.white, fontSize: 14),
|
|
|
- textAlign: TextAlign.center,
|
|
|
- )
|
|
|
- ],
|
|
|
+ ),
|
|
|
),
|
|
|
),
|
|
|
),
|