|
- 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<EmptyPageBloc>(
- 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<EmptyPageBloc, EmptyPageState>(
- 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: <Widget>[
- /// 图片
- 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),
- ),
- ),
- ),
- )
- ],
- ),
- ),
- );
- }
- }
|