diff --git a/assets/static/car_card_grey.webp b/assets/static/car_card_grey.webp new file mode 100644 index 00000000..f178d455 Binary files /dev/null and b/assets/static/car_card_grey.webp differ diff --git a/assets/static/car_card_yellow.webp b/assets/static/car_card_yellow.webp new file mode 100644 index 00000000..ac1cacb4 Binary files /dev/null and b/assets/static/car_card_yellow.webp differ diff --git a/lib/const/resource.dart b/lib/const/resource.dart index 470e8a49..89eb6f13 100644 --- a/lib/const/resource.dart +++ b/lib/const/resource.dart @@ -474,6 +474,14 @@ class R { /// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/json/zbbj.json) static const String ASSETS_JSON_ZBBJ_JSON = 'assets/json/zbbj.json'; + /// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/static/car_card_grey.webp) + static const String ASSETS_STATIC_CAR_CARD_GREY_WEBP = + 'assets/static/car_card_grey.webp'; + + /// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/static/car_card_yellow.webp) + static const String ASSETS_STATIC_CAR_CARD_YELLOW_WEBP = + 'assets/static/car_card_yellow.webp'; + /// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/static/car_park_empty.webp) static const String ASSETS_STATIC_CAR_PARK_EMPTY_WEBP = 'assets/static/car_park_empty.webp'; diff --git a/lib/main.dart b/lib/main.dart index 2126f43a..eae19676 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -9,7 +9,6 @@ import 'package:fluwx/fluwx.dart'; import 'package:get/get.dart'; import 'package:jpush_flutter/jpush_flutter.dart'; import 'package:provider/provider.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:akuCommunity/constants/app_theme.dart'; import 'package:akuCommunity/pages/splash/splash_page.dart'; @@ -94,7 +93,6 @@ class _MyAppState extends State { home: SplashPage(), //国际化支持 localizationsDelegates: [ - RefreshLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, diff --git a/lib/model/user/car_parking_model.dart b/lib/model/user/car_parking_model.dart index 6a62adc2..b9ba7c86 100644 --- a/lib/model/user/car_parking_model.dart +++ b/lib/model/user/car_parking_model.dart @@ -5,6 +5,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; class CarParkingModel { String code; int type; + int status; String effectiveTimeEnd; String get typeName { switch (type) { @@ -18,7 +19,7 @@ class CarParkingModel { } String get carTypeName { - switch (type) { + switch (status) { case 1: return '产权车位'; case 2: @@ -76,6 +77,7 @@ class CarParkingModel { code = json['code']; type = json['type']; effectiveTimeEnd = json['effectiveTimeEnd']; + status = json['status']; } Map toJson() { diff --git a/lib/pages/goods_details/view_comments_page.dart b/lib/pages/goods_details/view_comments_page.dart index 867979fb..c1b47e73 100644 --- a/lib/pages/goods_details/view_comments_page.dart +++ b/lib/pages/goods_details/view_comments_page.dart @@ -1,8 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; - import 'package:akuCommunity/base/base_style.dart'; import 'package:akuCommunity/utils/headers.dart'; import 'widget/goods_app_bar.dart'; @@ -68,8 +66,8 @@ class _ViewCommentsPageState extends State { }, ]; - RefreshController _refreshController = - RefreshController(initialRefresh: false); + // RefreshController _refreshController = + // RefreshController(initialRefresh: false); @override void initState() { @@ -79,7 +77,7 @@ class _ViewCommentsPageState extends State { void _onRefresh() async { await Future.delayed(Duration(milliseconds: 1500)); - _refreshController.refreshCompleted(); + // _refreshController.refreshCompleted(); } void _onLoading() async { @@ -94,13 +92,13 @@ class _ViewCommentsPageState extends State { 'viewNum': '235', }); if (mounted) setState(() {}); - _refreshController.loadComplete(); + // _refreshController.loadComplete(); } @override void dispose() { super.dispose(); - _refreshController.dispose(); + // _refreshController.dispose(); } Container _commentsClass() { @@ -186,34 +184,21 @@ class _ViewCommentsPageState extends State { children: [ _commentsClass(), Expanded( - child: Container( - child: RefreshConfiguration( - hideFooterWhenNotFull: true, - child: SmartRefresher( - controller: _refreshController, - header: WaterDropHeader(), - footer: ClassicFooter(), - onRefresh: _onRefresh, - onLoading: _onLoading, - enablePullUp: true, - child: ListView.builder( - padding: EdgeInsets.only(top: 30.w), - itemBuilder: (BuildContext context, int index) => Container( - color: Colors.white, - child: GoodsCommentsCard( - imagePath: _commentsCardList[index]['imagePath'], - name: _commentsCardList[index]['name'], - subtitle: _commentsCardList[index]['subtitle'], - content: _commentsCardList[index]['content'], - contentImageList: _commentsCardList[index] - ['contentImageList'], - viewNum: _commentsCardList[index]['viewNum'], - ), - ), - itemCount: _commentsCardList.length, - ), + child: ListView.builder( + padding: EdgeInsets.only(top: 30.w), + itemBuilder: (BuildContext context, int index) => Container( + color: Colors.white, + child: GoodsCommentsCard( + imagePath: _commentsCardList[index]['imagePath'], + name: _commentsCardList[index]['name'], + subtitle: _commentsCardList[index]['subtitle'], + content: _commentsCardList[index]['content'], + contentImageList: _commentsCardList[index] + ['contentImageList'], + viewNum: _commentsCardList[index]['viewNum'], ), ), + itemCount: _commentsCardList.length, ), ) ], diff --git a/lib/pages/life_pay/life_pay_record_page/life_pay_record_page.dart b/lib/pages/life_pay/life_pay_record_page/life_pay_record_page.dart deleted file mode 100644 index fd3a631b..00000000 --- a/lib/pages/life_pay/life_pay_record_page/life_pay_record_page.dart +++ /dev/null @@ -1,91 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; - -import 'package:pull_to_refresh/pull_to_refresh.dart'; - -import 'package:akuCommunity/pages/life_pay/life_pay_bill_page/life_pay_bill_page.dart'; -import 'package:akuCommunity/utils/headers.dart'; -import 'package:akuCommunity/widget/bee_scaffold.dart'; -import 'widget/record_card.dart'; - -class LifePayRecordPage extends StatefulWidget { - LifePayRecordPage({Key key}) : super(key: key); - - @override - _LifePayRecordPageState createState() => _LifePayRecordPageState(); -} - -class _LifePayRecordPageState extends State { - RefreshController _refreshController = - RefreshController(initialRefresh: false); - - @override - void initState() { - super.initState(); - } - - void _onRefresh() async { - await Future.delayed(Duration(milliseconds: 1500)); - - _refreshController.refreshCompleted(); - } - - void _onLoading() async { - await Future.delayed(Duration(milliseconds: 1500)); - - if (mounted) setState(() {}); - _refreshController.loadComplete(); - } - - @override - void dispose() { - super.dispose(); - _refreshController.dispose(); - } - - @override - Widget build(BuildContext context) { - return BeeScaffold( - title: '缴费记录', - body: RefreshConfiguration( - hideFooterWhenNotFull: true, - child: SmartRefresher( - controller: _refreshController, - header: WaterDropHeader(), - footer: ClassicFooter(), - onRefresh: _onRefresh, - onLoading: _onLoading, - enablePullUp: true, - child: ListView( - children: [ - Container( - margin: EdgeInsets.only( - top: 34.w, - left: 32.w, - right: 32.w, - ), - child: RichText( - text: TextSpan( - style: TextStyle(fontSize: 24.sp), - children: [ - TextSpan( - text: '如果有疑问,请联系物业客服', - style: TextStyle(color: Color(0xff666666))), - TextSpan( - text: '400-6754322', - style: TextStyle(color: Color(0xffff8200)), - ), - ]), - ), - ), - RecordCard(fun: LifePayBillPage().to), - RecordCard(fun: LifePayBillPage().to), - RecordCard(fun: LifePayBillPage().to), - RecordCard(fun: LifePayBillPage().to), - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/life_pay/life_pay_record_page/widget/record_card.dart b/lib/pages/life_pay/life_pay_record_page/widget/record_card.dart deleted file mode 100644 index 9c3faaf9..00000000 --- a/lib/pages/life_pay/life_pay_record_page/widget/record_card.dart +++ /dev/null @@ -1,160 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; - -import 'package:flutter_icons/flutter_icons.dart'; - -import 'package:akuCommunity/base/base_style.dart'; -import 'package:akuCommunity/utils/headers.dart'; - -class RecordCard extends StatelessWidget { - final Function fun; - RecordCard({Key key, this.fun}) : super(key: key); - - final List> _listBill = [ - { - 'title': '物业管理费', - 'value': '深蓝公寓 1幢1单元306', - 'titleStyle': TextStyle( - fontWeight: FontWeight.w600, - fontSize: BaseStyle.fontSize30, - color: ktextPrimary, - ), - 'valueStyle': TextStyle( - fontSize: BaseStyle.fontSize24, - color: BaseStyle.color999999, - ), - 'top': 30, - 'isShow': false, - }, - { - 'title': '2019年', - 'value': '- ¥1000.00', - 'titleStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: ktextSubColor, - ), - 'valueStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: Color(0xfffc361d), - ), - 'top': 50, - 'isShow': true, - }, - { - 'title': '创建时间', - 'value': '2020/08/01 10:00', - 'titleStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: ktextSubColor, - ), - 'valueStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: ktextPrimary, - ), - 'top': 30, - 'isShow': false, - }, - { - 'title': '付款方式', - 'value': '支付宝', - 'titleStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: ktextSubColor, - ), - 'valueStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: ktextPrimary, - ), - 'top': 30, - 'isShow': false, - }, - { - 'title': '订单号', - 'value': '2020080100030001433244', - 'titleStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: ktextSubColor, - ), - 'valueStyle': TextStyle( - fontSize: BaseStyle.fontSize28, - color: ktextPrimary, - ), - 'top': 30, - 'isShow': false, - }, - ]; - - Container _billItem(String title, value, TextStyle titleStyle, valueStyle, - double top, bool isShow, Function fun) { - return Container( - margin: EdgeInsets.only(top: top.w), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - title, - style: titleStyle, - ), - isShow - ? InkWell( - onTap: fun, - child: Row( - children: [ - Text( - value, - style: valueStyle, - ), - Container( - margin: EdgeInsets.only(left: 24.w), - child: Icon( - AntDesign.right, - color: BaseStyle.color999999, - size: 30.w, - ), - ), - ], - ), - ) - : Text( - value, - style: valueStyle, - ), - ], - ), - ); - } - - @override - Widget build(BuildContext context) { - return Container( - margin: EdgeInsets.only( - top: 32.w, - left: 32.w, - right: 32.w, - ), - padding: EdgeInsets.only( - left: 20.w, - right: 20.w, - bottom: 32.w, - top: 2.w, - ), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all(Radius.circular(6)), - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: _listBill - .map((item) => _billItem( - item['title'], - item['value'], - item['titleStyle'], - item['valueStyle'], - item['top'].toDouble(), - item['isShow'], - fun)) - .toList(), - ), - ); - } -} diff --git a/lib/pages/market/widget/market_list.dart b/lib/pages/market/widget/market_list.dart index f9140dac..9c12c68b 100644 --- a/lib/pages/market/widget/market_list.dart +++ b/lib/pages/market/widget/market_list.dart @@ -4,8 +4,6 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; - import 'package:akuCommunity/model/aku_shop_model.dart'; import 'package:akuCommunity/service/base_model.dart'; import 'package:akuCommunity/utils/headers.dart'; @@ -26,8 +24,6 @@ class _MarketListState extends State with AutomaticKeepAliveClientMixin { @override bool get wantKeepAlive => true; - RefreshController _refreshController = - RefreshController(initialRefresh: false); List _shopList = []; @@ -201,40 +197,28 @@ class _MarketListState extends State page++; // akuShop(page); if (mounted) setState(() {}); - _refreshController.loadComplete(); } @override Widget build(BuildContext context) { super.build(context); - return RefreshConfiguration( - hideFooterWhenNotFull: true, - child: SmartRefresher( - controller: _refreshController, - header: WaterDropHeader(), - footer: ClassicFooter(), - onLoading: _onLoading, - enablePullUp: true, - enablePullDown: false, - child: CustomScrollView( - slivers: [ - widget.isGroup - ? SliverGoodsGroupCard() - : SliverPadding( - padding: EdgeInsets.only( - top: 30.w, - left: 32.w, - right: 32.w, - ), - sliver: _shopList.length == 0 - ? SliverToBoxAdapter(child: GoodsCardSkeleton()) - : SliverGoodsCard( - shoplist: _shopList, - isShow: true, - )), - ], - ), - ), + return CustomScrollView( + slivers: [ + widget.isGroup + ? SliverGoodsGroupCard() + : SliverPadding( + padding: EdgeInsets.only( + top: 30.w, + left: 32.w, + right: 32.w, + ), + sliver: _shopList.length == 0 + ? SliverToBoxAdapter(child: GoodsCardSkeleton()) + : SliverGoodsCard( + shoplist: _shopList, + isShow: true, + )), + ], ); } } diff --git a/lib/pages/message_center_page/shop_message_page/shop_message_page.dart b/lib/pages/message_center_page/shop_message_page/shop_message_page.dart index 92f8e7a5..4f8561d4 100644 --- a/lib/pages/message_center_page/shop_message_page/shop_message_page.dart +++ b/lib/pages/message_center_page/shop_message_page/shop_message_page.dart @@ -4,7 +4,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:velocity_x/velocity_x.dart'; import 'package:akuCommunity/utils/headers.dart'; @@ -18,8 +17,6 @@ class ShopMessagePage extends StatefulWidget { } class _ShopMessagePageState extends State { - RefreshController _refreshController = - RefreshController(initialRefresh: false); List> _listNotice = [ { 'status': '已读', @@ -51,15 +48,12 @@ class _ShopMessagePageState extends State { void _onRefresh() async { await Future.delayed(Duration(milliseconds: 1500)); - - _refreshController.refreshCompleted(); } void _onLoading() async { await Future.delayed(Duration(milliseconds: 1500)); if (mounted) setState(() {}); - _refreshController.loadComplete(); } // void refundRouter() { @@ -77,7 +71,6 @@ class _ShopMessagePageState extends State { @override void dispose() { super.dispose(); - _refreshController.dispose(); } InkWell _inkWellLook(String type, content, lookType) { @@ -192,26 +185,15 @@ class _ShopMessagePageState extends State { ), ) ], - body: RefreshConfiguration( - hideFooterWhenNotFull: true, - child: SmartRefresher( - controller: _refreshController, - header: WaterDropHeader(), - footer: ClassicFooter(), - onRefresh: _onRefresh, - onLoading: _onLoading, - enablePullUp: true, - child: ListView.builder( - itemBuilder: (context, index) => _containerCard( - _listNotice[index]['status'], - _listNotice[index]['type'], - _listNotice[index]['imagePath'], - _listNotice[index]['content'], - _listNotice[index]['lookType'], - ), - itemCount: _listNotice.length, - ), + body: ListView.builder( + itemBuilder: (context, index) => _containerCard( + _listNotice[index]['status'], + _listNotice[index]['type'], + _listNotice[index]['imagePath'], + _listNotice[index]['content'], + _listNotice[index]['lookType'], ), + itemCount: _listNotice.length, ), ); } diff --git a/lib/pages/personal/widget/order_list.dart b/lib/pages/personal/widget/order_list.dart index c5a5f43c..7e8058d0 100644 --- a/lib/pages/personal/widget/order_list.dart +++ b/lib/pages/personal/widget/order_list.dart @@ -1,8 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; - import 'order_card.dart'; class OrderList extends StatefulWidget { @@ -132,9 +130,6 @@ class _OrderListState extends State } ]; - RefreshController _refreshController = - RefreshController(initialRefresh: false); - @override void initState() { super.initState(); @@ -142,47 +137,32 @@ class _OrderListState extends State void _onRefresh() async { await Future.delayed(Duration(milliseconds: 1500)); - - _refreshController.refreshCompleted(); } void _onLoading() async { await Future.delayed(Duration(milliseconds: 1500)); if (mounted) setState(() {}); - _refreshController.loadComplete(); } @override void dispose() { super.dispose(); - _refreshController.dispose(); } @override Widget build(BuildContext context) { super.build(context); - return RefreshConfiguration( - hideFooterWhenNotFull: true, - child: SmartRefresher( - controller: _refreshController, - header: WaterDropHeader(), - footer: ClassicFooter(), - onRefresh: _onRefresh, - onLoading: _onLoading, - enablePullUp: true, - child: ListView.builder( - itemBuilder: (context, index) => OrderCard( - status: _listGood[index]['status'], - totalPrice: _listGood[index]['totalPrice'], - payPrice: _listGood[index]['payPrice'], - listContent: _listGood[index]['listContent'], - listButton: _listGood[index]['listButton'], - listOrderDetail: _listGood[index]['listOrderDetail'], - ), - itemCount: _listGood.length, - ), + return ListView.builder( + itemBuilder: (context, index) => OrderCard( + status: _listGood[index]['status'], + totalPrice: _listGood[index]['totalPrice'], + payPrice: _listGood[index]['payPrice'], + listContent: _listGood[index]['listContent'], + listButton: _listGood[index]['listButton'], + listOrderDetail: _listGood[index]['listOrderDetail'], ), + itemCount: _listGood.length, ); } } diff --git a/lib/pages/things_page/widget/things_list.dart b/lib/pages/things_page/widget/things_list.dart index 6257e88d..f076b836 100644 --- a/lib/pages/things_page/widget/things_list.dart +++ b/lib/pages/things_page/widget/things_list.dart @@ -1,8 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; - import 'package:akuCommunity/utils/headers.dart'; import 'things_card.dart'; @@ -20,41 +18,19 @@ class _ThingsListState extends State @override bool get wantKeepAlive => true; - RefreshController _refreshController = - RefreshController(initialRefresh: false); - - void _onRefresh() async { - await Future.delayed(Duration(milliseconds: 1500)); - _refreshController.refreshCompleted(); - } - - void _onLoading() async { - await Future.delayed(Duration(milliseconds: 1500)); - if (mounted) setState(() {}); - _refreshController.loadComplete(); - } - @override Widget build(BuildContext context) { super.build(context); - return SmartRefresher( - controller: _refreshController, - header: WaterDropHeader(), - footer: ClassicFooter(), - onRefresh: _onRefresh, - onLoading: _onLoading, - enablePullUp: true, - child: ListView.builder( - padding: EdgeInsets.only(bottom: 98.w), - itemBuilder: (context, index) => ThingsCard( - time: widget.listCard[index]['time'], - tag: widget.listCard[index]['tag'], - content: widget.listCard[index]['content'], - imageList: widget.listCard[index]['imageList'], - isRepair: widget.isRepair, - ), - itemCount: widget.listCard.length, + return ListView.builder( + padding: EdgeInsets.only(bottom: 98.w), + itemBuilder: (context, index) => ThingsCard( + time: widget.listCard[index]['time'], + tag: widget.listCard[index]['tag'], + content: widget.listCard[index]['content'], + imageList: widget.listCard[index]['imageList'], + isRepair: widget.isRepair, ), + itemCount: widget.listCard.length, ); } } diff --git a/lib/ui/profile/car/car_manage_card.dart b/lib/ui/profile/car/car_manage_card.dart index 37d37302..123b6201 100644 --- a/lib/ui/profile/car/car_manage_card.dart +++ b/lib/ui/profile/car/car_manage_card.dart @@ -9,8 +9,8 @@ class CarManageCard extends StatelessWidget { String get _assetImage { return model.outdated - ? R.ASSETS_STATIC_PARKING_GREY_WEBP - : R.ASSETS_STATIC_PARKING_YELLOW_WEBP; + ? R.ASSETS_STATIC_CAR_CARD_GREY_WEBP + : R.ASSETS_STATIC_CAR_CARD_YELLOW_WEBP; } @override @@ -22,6 +22,7 @@ class CarManageCard extends StatelessWidget { decoration: BoxDecoration( image: DecorationImage(image: AssetImage(_assetImage)), borderRadius: BorderRadius.circular(8.w), + boxShadow: model.shadow, ), clipBehavior: Clip.antiAlias, child: Column( @@ -54,7 +55,7 @@ class CarManageCard extends StatelessWidget { ), ), Text( - model.typeName, + model.carTypeName, style: Theme.of(context).textTheme.subtitle2.copyWith( fontWeight: FontWeight.bold, ), diff --git a/lib/ui/profile/car/car_manage_page.dart b/lib/ui/profile/car/car_manage_page.dart index 5bdace6b..01377698 100644 --- a/lib/ui/profile/car/car_manage_page.dart +++ b/lib/ui/profile/car/car_manage_page.dart @@ -40,7 +40,7 @@ class _CarManagePageState extends State { Widget build(BuildContext context) { final appProvider = Provider.of(context); return BeeScaffold( - title: '我的车位', + title: '我的车辆', actions: [ // TextButton( // onPressed: () {}, diff --git a/lib/ui/profile/car_parking/car_parking_card.dart b/lib/ui/profile/car_parking/car_parking_card.dart index 3d678799..6dbecb69 100644 --- a/lib/ui/profile/car_parking/car_parking_card.dart +++ b/lib/ui/profile/car_parking/car_parking_card.dart @@ -22,6 +22,7 @@ class CarparkingCard extends StatelessWidget { decoration: BoxDecoration( image: DecorationImage(image: AssetImage(_assetImage)), borderRadius: BorderRadius.circular(8.w), + boxShadow: model.shadow, ), clipBehavior: Clip.antiAlias, child: Column( diff --git a/pubspec.lock b/pubspec.lock index ca549faf..91c296df 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -669,13 +669,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.4.4" - pull_to_refresh: - dependency: "direct main" - description: - name: pull_to_refresh - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.6.4" qr: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 3e94e09d..7b068547 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,8 +16,6 @@ dependencies: permission_handler: ^6.1.1 # 版本信息 package_info: ^2.0.0 - #上拉加载 - pull_to_refresh: ^1.6.4 provider: ^5.0.0 # 屏幕适配 flutter_screenutil: ^5.0.0-nullsafety.11