import 'package:flutter/material.dart'; import 'package:zhiying_comm/pages/empty_page/bloc/empty_page_bloc.dart'; import 'package:zhiying_comm/pages/empty_page/model/empty_page_model.dart'; import 'package:zhiying_comm/util/update/app_update_util.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'bloc/empty_page_bloc.dart'; import 'bloc/empty_page_event.dart'; import 'bloc/empty_page_state.dart'; import 'bloc/empty_page_repository.dart'; class EmptyPage extends StatelessWidget { @override Widget build(BuildContext context) { return BlocProvider( create: (_) => EmptyPageBloc(EmptyPageRepository())..add(EmptyPageInitEvent()), child: _EmptyPageContainer(), ); } } class _EmptyPageContainer extends StatefulWidget { @override __EmptyPageContainerState createState() => __EmptyPageContainerState(); } class __EmptyPageContainerState extends State<_EmptyPageContainer> { /// 返回 or 升级 void _buttonClick(String text) { if(!EmptyUtil.isEmpty(text) && text == 'update'){ // 更新 AppUpdateUtil.updateApp(context, needToast: true, mustShowDialog: true); }else { // 返回 Navigator.maybePop(context); } } @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { if (state is EmptyPageLoadedState) { return _buildMainWidget(state?.model); } return _buildMainWidget(null); }, ); } Widget _buildMainWidget(EmptyPageModel model) { return Scaffold( backgroundColor: HexColor.fromHex(model?.bgColor ?? '#F9F9F9'), appBar: AppBar( brightness: Brightness.light, leading: IconButton( icon: Icon( Icons.arrow_back_ios, size: 22, color: HexColor.fromHex(model?.appBarNameColor ?? '#333333'), ), onPressed: () => Navigator.maybePop(context), ), backgroundColor: HexColor.fromHex('#FFFFFF'), centerTitle: true, title: Text( model?.appBarName ?? '开发中', style: TextStyle(fontSize: 15, color: HexColor.fromHex(model?.appBarNameColor ?? '#333333'), fontWeight: FontWeight.bold), ), elevation: 0, ), body: Padding( padding: const EdgeInsets.symmetric(horizontal: 36), child: Column( children: [ /// 图片 Padding( padding: const EdgeInsets.only(top: 125), child: Container( height: 200, width: double.infinity, child: CachedNetworkImage( imageUrl: model?.bgImg ?? '', ), )), /// 提示文字 Padding( padding: const EdgeInsets.only(top: 16, left: 30, right: 30), child: Text( model?.contentText ?? '程序员小哥正在开发中,敬请期待', maxLines: 2, textAlign: TextAlign.center, style: TextStyle(color: HexColor.fromHex(model?.contentTextColor ?? '#999999'), fontSize: 14), )), /// 按钮 Padding( padding: const EdgeInsets.only(top: 16), child: GestureDetector( onTap: ()=>_buttonClick(model?.btnType), behavior: HitTestBehavior.opaque, child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(30), boxShadow: [ BoxShadow( color: HexColor.fromHex('#FF2020'), blurRadius: 0.5, ) ], gradient: LinearGradient(begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ HexColor.fromHex(model?.btnColor1 ?? '#FF6868'), HexColor.fromHex(model?.btnColor2 ?? '#FF4242'), ])), padding: const EdgeInsets.symmetric(horizontal: 43, vertical: 7.5), child: Text( model?.btnText ?? '返回', style: TextStyle(color: HexColor.fromHex(model?.btnTextColor ?? '#FFFFFF'), fontSize: 13), ), ), ), ) ], ), ), ); } }