diff --git a/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart b/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart index 368653d..56d96aa 100644 --- a/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart +++ b/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart @@ -25,6 +25,7 @@ class IntellectCreate { try { _requestSetData(context); } catch (e, s) { + isRequest = false; print(e); print(s); } @@ -45,27 +46,22 @@ class IntellectCreate { var param = {"webId": ""}; //请求参数 - await NetUtil.request('/api/v1/cfg/clipboard_base', params: param, - onSuccess: (data) async { + await NetUtil.request('/api/v1/cfg/clipboard_base', params: param, onSuccess: (data) async { print("设置参数" + data.toString()); ///检查是否已缓存过设置信息 - String result = await SharedPreferencesUtil.getStringValue( - Constants.spIsCacheSetModel); - _setModel = IntellectSearchSetModel.fromJson( - json.decode(data['clipboard_base'])); + String result = await SharedPreferencesUtil.getStringValue(Constants.spIsCacheSetModel); + _setModel = IntellectSearchSetModel.fromJson(json.decode(data['clipboard_base'])); if (result == null || result.isEmpty) { validate(context, _setModel); } - SharedPreferencesUtil.setNetCacheResult( - Constants.spIsCacheSetModel, data['clipboard_base']); + SharedPreferencesUtil.setNetCacheResult(Constants.spIsCacheSetModel, data['clipboard_base']); }); isRequest = false; ///拿缓存数据 - var cacheData = await SharedPreferencesUtil.getNetCacheResult( - Constants.spIsCacheSetModel); + var cacheData = await SharedPreferencesUtil.getNetCacheResult(Constants.spIsCacheSetModel); ///如果存在缓存直接进入验证阶段 if (cacheData != null) { @@ -88,20 +84,21 @@ class IntellectCreate { // content = // "6緮置内容 Http:/T¢ZKkjceixTjW¢转移至ta0寶【URBANISTA/爱班Stockholm斯德哥尔摩 真无线蓝牙运动耳机半入耳式】"; var params = {"content": content}; - NetUtil.request("/api/v1/clipboard/parse", - params: params, method: NetMethod.POST, onSuccess: (data) async { + NetUtil.request("/api/v1/clipboard/parse", params: params, method: NetMethod.POST, onSuccess: (data) async { print(data); isRequest = false; if (data == null || data.toString().length == 0) { + ///弹起存在不存在商品的弹窗 if (!Constants.isShowIntellectDialog) { Constants.isShowIntellectDialog = true; - await showDialog( - context: context, child: IntellectSearchNoGoodsDialog()); + await showDialog(context: context, child: IntellectSearchNoGoodsDialog()); Constants.isShowIntellectDialog = false; } + } else if (data.toString() == "403032") { + //啥也不干 } else { - IntellectDialogDataModel model = - IntellectDialogDataModel.fromJson(data); + ///弹起存在商品的弹窗 + IntellectDialogDataModel model = IntellectDialogDataModel.fromJson(data); if (!Constants.isShowIntellectDialog) { Constants.isShowIntellectDialog = true; await showDialog( @@ -116,8 +113,7 @@ class IntellectCreate { } ///检查字段是否被监听 - static void validate( - BuildContext context, IntellectSearchSetModel setModel) async { + static void validate(BuildContext context, IntellectSearchSetModel setModel) async { ClipboardData data = await Clipboard.getData(Clipboard.kTextPlain); String content = data?.text?.trim() ?? ""; //是否监听 @@ -130,9 +126,7 @@ class IntellectCreate { } ///长度大小限制 - if (setModel.isKeyLength == "1" && - (int.tryParse(setModel.keyLengthMin) > content.length) || - (int.tryParse(setModel.keyLengthMax) < content.length)) { + if (setModel.isKeyLength == "1" && (int.tryParse(setModel.keyLengthMin) > content.length) || (int.tryParse(setModel.keyLengthMax) < content.length)) { return; } @@ -151,7 +145,7 @@ class IntellectCreate { return; } - ///是否包含某个排除词 + ///是否包含某个排除词,如果是则不监听 if (setModel.banWords != null && setModel.banWords.length > 0) { for (var item in setModel.banWords) { if (contains(content, item)) { diff --git a/lib/dialog/global_dialog/policy_dialog/policy_dialog.dart b/lib/dialog/global_dialog/policy_dialog/policy_dialog.dart index 618532c..4c9413a 100644 --- a/lib/dialog/global_dialog/policy_dialog/policy_dialog.dart +++ b/lib/dialog/global_dialog/policy_dialog/policy_dialog.dart @@ -175,7 +175,7 @@ class _PolicyDialogState extends State { text: '', style: TextStyle( height: 1.2, - fontSize: 12, + fontSize: 14, color: HexColor.fromHex('#555555'), ), children: texts, diff --git a/lib/pages/home_page/home_page.dart b/lib/pages/home_page/home_page.dart index 9faca02..9cbbe13 100644 --- a/lib/pages/home_page/home_page.dart +++ b/lib/pages/home_page/home_page.dart @@ -156,9 +156,15 @@ class _HomePageState extends State with WidgetsBindingObserver { onTap: ((index) async { BaseTabModel model = BaseTabModel.fromJson(tabs[index]); if (await _checkLimit(model)) { - setState(() { - _currentIndex = index; - }); + ///避免同一个页面多次点击多次重绘 + if(_currentIndex==index){ + return; + }else{ + setState(() { + _currentIndex = index; + }); + } + } }), //底部导航栏 diff --git a/lib/pages/launch_page/launch_page.dart b/lib/pages/launch_page/launch_page.dart index b17b519..8c1bebc 100644 --- a/lib/pages/launch_page/launch_page.dart +++ b/lib/pages/launch_page/launch_page.dart @@ -4,6 +4,8 @@ import 'package:connectivity/connectivity.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:zhiying_base_widget/dialog/tip_dialog/tip_dialog.dart'; import 'package:zhiying_base_widget/models/app_config_model.dart'; import 'package:zhiying_base_widget/pages/guide_page/guide_page.dart'; import 'package:zhiying_base_widget/pages/home_page/home_page.dart'; @@ -27,7 +29,7 @@ class LaunchPage extends StatefulWidget { class _LaunchPageState extends State { @override void initState() { - Connectivity().checkConnectivity().then((connectivityResult) { + Connectivity().checkConnectivity().then((connectivityResult) async { if (connectivityResult == ConnectivityResult.mobile || connectivityResult == ConnectivityResult.wifi) { // I am connected to a wifi network. @@ -52,12 +54,19 @@ class _LaunchPageState extends State { // CupertinoPageRoute(builder: (context) => HomePage())); Navigator.of(context).pushReplacementNamed('/homePage'); } - }).catchError((err) { + }).catchError((err) async { + if(err.toString().contains("BaseSettingModel")){ + await showDialog(context: context,child: TipDialog(content: "基本配置加载失败!请检查网络是否可用后再启动应用!",)); + SystemNavigator.pop(); + } Logger.error(err); }); } else { + ///在无网络情况下提示用户打开网络 + await showDialog(context: context,child: TipDialog(content: "无法连接网络!请打开移动网络/连接WIFI后再尝试",)); Logger.error('未知网络,APP初始化失败'); print('unknow'); + SystemNavigator.pop(); } }); @@ -90,7 +99,7 @@ class _LaunchPageState extends State { return Image.asset( 'assets/images/launch_image/launch_image.png', package: 'zhiying_base_widget', - fit: BoxFit.cover, + fit: BoxFit.fill, ); } } diff --git a/lib/pages/main_page/main_page.dart b/lib/pages/main_page/main_page.dart index f99f93c..ea29bdd 100644 --- a/lib/pages/main_page/main_page.dart +++ b/lib/pages/main_page/main_page.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:ui'; import 'package:flutter/cupertino.dart'; @@ -8,6 +9,7 @@ import 'package:zhiying_base_widget/pages/main_page/main_page_bloc.dart'; import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifier.dart'; import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_notifier.dart'; import 'package:zhiying_base_widget/widgets/home/home_auth/home_auth.dart'; +import 'package:zhiying_base_widget/widgets/mine/mine_nav/mine_nav_bg.dart'; import 'package:zhiying_base_widget/widgets/others/mine_header_bg_widget.dart'; import 'package:zhiying_base_widget/widgets/refresh/refresh_header/refresh_header.dart'; import 'package:zhiying_comm/util/base_bloc.dart'; @@ -54,8 +56,7 @@ class _MainPageContainerState extends State<_MainPageContainer> { bool _isEnded = false; ScrollController _controller = ScrollController(); MainPageBloc _bloc; - RefreshController _refreshController = - RefreshController(initialRefresh: false); + RefreshController _refreshController = RefreshController(initialRefresh: false); Widget _floatWidget; @@ -90,13 +91,11 @@ class _MainPageContainerState extends State<_MainPageContainer> { _controller.addListener(() { // print('${_controller.offset} ${_controller.position.maxScrollExtent}'); - if (_controller.offset >= _controller.position.maxScrollExtent && - !_isEnded) { + if (_controller.offset >= _controller.position.maxScrollExtent && !_isEnded) { // 滑动到底部 _isEnded = true; Provider.of(context, listen: false).loadMore(); - } else if (_controller.offset < _controller.position.maxScrollExtent && - _isEnded) { + } else if (_controller.offset < _controller.position.maxScrollExtent && _isEnded) { _isEnded = false; Provider.of(context, listen: false).reset(); } @@ -113,11 +112,11 @@ class _MainPageContainerState extends State<_MainPageContainer> { builder: (BuildContext context, AsyncSnapshot snapshot) { List widgets = _createContent(context, snapshot.data ?? []); _refreshController.refreshCompleted(); + Widget bgWidget = validateBgWidget(context, snapshot.data ?? []); return Scaffold( backgroundColor: Color(0xfff9f9f9), floatingActionButton: _floatWidget, - floatingActionButtonLocation: - FloatingActionButtonLocation.centerDocked, + floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, body: MediaQuery.removePadding( removeTop: true, context: context, @@ -127,6 +126,7 @@ class _MainPageContainerState extends State<_MainPageContainer> { fit: StackFit.passthrough, children: [ MineHeaderBgWidget( + bgWidget: bgWidget, controller: _controller, ), SmartRefresher( @@ -151,12 +151,10 @@ class _MainPageContainerState extends State<_MainPageContainer> { }); } - List _createContent( - BuildContext context, List> datas) { + List _createContent(BuildContext context, List> datas) { List list = List(); for (int i = 0; i < datas.length; i++) { - WidgetModel item = - WidgetModel.fromJson(Map.from(datas[i])); + WidgetModel item = WidgetModel.fromJson(Map.from(datas[i])); print('item.modName ${item.modName}'); if (item.modName == 'index_taobao_auth_tip') { @@ -181,4 +179,26 @@ class _MainPageContainerState extends State<_MainPageContainer> { } return list; } + + + + ///处理特殊背景图 + Widget validateBgWidget(BuildContext context, List> datas) { + for (int i = 0; i < datas.length; i++) { + WidgetModel item = WidgetModel.fromJson(Map.from(datas[i])); + if (item.modName == "profile_background") { + final double statusBarHeight = MediaQuery.of(context).padding.top; + String url=json.decode(item.data)['img']; + return Container( + width: double.infinity, + height: statusBarHeight + 250, + child: CachedNetworkImage( + imageUrl: url, + fit: BoxFit.fitHeight, + ), + ); + } + } + return null; + } } diff --git a/lib/pages/main_page/main_page_bloc.dart b/lib/pages/main_page/main_page_bloc.dart index 1d3f57a..6cbe1ab 100644 --- a/lib/pages/main_page/main_page_bloc.dart +++ b/lib/pages/main_page/main_page_bloc.dart @@ -7,7 +7,7 @@ class MainPageBloc extends BlocBase { List> _pageData = List(); StreamController>> _mainController = - StreamController>>(); + StreamController>>.broadcast(); Stream>> get outData => _mainController.stream; diff --git a/lib/register.dart b/lib/register.dart index eef3cb7..3cc1549 100644 --- a/lib/register.dart +++ b/lib/register.dart @@ -102,7 +102,7 @@ class BaseWidgetRegister { static void registInit() { Application.addMethod(() async { if (await BaseSettingModel.init() == null) { - throw Future.error('BaseSettingModel 初始化失败'); + throw Exception('BaseSettingModel 初始化失败'); } }); diff --git a/lib/widgets/custom/multi_nav/custom_quick_entry.dart b/lib/widgets/custom/multi_nav/custom_quick_entry.dart index 29e2a2b..88e3c7f 100644 --- a/lib/widgets/custom/multi_nav/custom_quick_entry.dart +++ b/lib/widgets/custom/multi_nav/custom_quick_entry.dart @@ -90,6 +90,16 @@ class __CustomQuickEntryContainerState extends State<_CustomQuickEntryContainer> // 展示的列数 int columSize = int.parse(model?.columSize ?? '5'); + //计算实际显示行数 + if(totalRowSize*columSize>totalDataSize){ + for(int index=1;index<=totalRowSize;index++){ + if(index*columSize>=totalRowSize){ + totalRowSize=index; + break; + } + } + } + // 图标的高度 double iconHeight = 40.0; // 标题的高度 diff --git a/lib/widgets/home/home_goods/home_goods_item_single.dart b/lib/widgets/home/home_goods/home_goods_item_single.dart index d29953a..e3b5a14 100644 --- a/lib/widgets/home/home_goods/home_goods_item_single.dart +++ b/lib/widgets/home/home_goods/home_goods_item_single.dart @@ -19,8 +19,7 @@ class HomeGoodsItemSingle extends StatelessWidget { final double marginTop; final double marginBottom; - HomeGoodsItemSingle(this.goods, this.style, {Key key, this.data, this.marginBottom = 4, this.marginTop = 4, this.marginLeft= 12.5, this.marginRight = 12.5}) - : super(key: key) { + HomeGoodsItemSingle(this.goods, this.style, {Key key, this.data, this.marginBottom = 4, this.marginTop = 4, this.marginLeft = 12.5, this.marginRight = 12.5}) : super(key: key) { if (this.data != null && this.data.containsKey('data')) { String data = this.data['data']; Map json = Map.from(jsonDecode(data)); @@ -31,8 +30,7 @@ class HomeGoodsItemSingle extends StatelessWidget { /// 跳到商品详情 void _onJumpGoodsDetails(BuildContext context, HomeGoodsModel goods) { RouterUtil.hideKeyboard(context); - Navigator.push(context, - CupertinoPageRoute(builder: (_) => GoodsDetailsPage(goods.toJson()))); + Navigator.push(context, CupertinoPageRoute(builder: (_) => GoodsDetailsPage(goods.toJson()))); } @override @@ -42,9 +40,7 @@ class HomeGoodsItemSingle extends StatelessWidget { child: Container( margin: EdgeInsets.only(left: marginLeft, right: marginRight, top: marginTop, bottom: marginBottom), padding: EdgeInsets.all(7.5), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all(Radius.circular(7.5))), + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(7.5))), child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -71,10 +67,12 @@ class HomeGoodsItemSingle extends StatelessWidget { width: double.infinity, child: _createTitle(), ), - _createShop(), + style?.listStyle?.hotRank?.isOpen == "0" ? _createShop() : Container(), _createCupone(), - Expanded(child: Container()), + style?.listStyle?.hotRank?.isOpen == "0"? Expanded(child: Container()):Container(), _createBottom(), + style?.listStyle?.hotRank?.isOpen == "1"? Expanded(child: Container()):Container(), + style?.listStyle?.hotRank?.isOpen == "1"? _buildHotItem():Container() ], ), ), @@ -122,10 +120,7 @@ class HomeGoodsItemSingle extends StatelessWidget { } list.add(TextSpan( text: goods.goodTitle, - style: TextStyle( - fontSize: 15, - color: HexColor.fromHex('#333333'), - fontWeight: FontWeight.bold), + style: TextStyle(fontSize: 15, color: HexColor.fromHex('#333333'), fontWeight: FontWeight.bold), )); return RichText( maxLines: 2, @@ -153,11 +148,7 @@ class HomeGoodsItemSingle extends StatelessWidget { child: Text( goods.shopName, maxLines: 1, - style: TextStyle( - color: HexColor.fromHex( - style?.listStyle?.shopNameColor ?? '#666666'), - fontSize: 11, - fontWeight: FontWeight.w400), + style: TextStyle(color: HexColor.fromHex(style?.listStyle?.shopNameColor ?? '#666666'), fontSize: 11, fontWeight: FontWeight.w400), )) ], ), @@ -170,15 +161,12 @@ class HomeGoodsItemSingle extends StatelessWidget { var couponDe = style?.listStyle?.couponCommission?.coupon?.bgImg == 'img' ? BoxDecoration( image: DecorationImage( - image: CachedNetworkImageProvider( - style?.listStyle?.couponCommission?.coupon?.bgImg ?? - ''), + image: CachedNetworkImageProvider(style?.listStyle?.couponCommission?.coupon?.bgImg ?? ''), ), borderRadius: BorderRadius.circular(2.5), ) : BoxDecoration( - color: HexColor.fromHex( - style?.listStyle?.couponCommission?.coupon?.bgColor), + color: HexColor.fromHex(style?.listStyle?.couponCommission?.coupon?.bgColor), borderRadius: BorderRadius.circular(2.5), ); @@ -210,18 +198,15 @@ class HomeGoodsItemSingle extends StatelessWidget { style: TextStyle( height: 1, fontSize: 11, - color: HexColor.fromHex(style - ?.listStyle?.couponCommission?.coupon?.fontColor), + color: HexColor.fromHex(style?.listStyle?.couponCommission?.coupon?.fontColor), ), children: [ TextSpan( - text: - '${style?.listStyle?.couponCommission?.coupon?.text ?? '元劵'}', + text: '${style?.listStyle?.couponCommission?.coupon?.text ?? '元劵'}', style: TextStyle( height: 1, fontSize: 11, - color: HexColor.fromHex(style - ?.listStyle?.couponCommission?.coupon?.fontColor), + color: HexColor.fromHex(style?.listStyle?.couponCommission?.coupon?.fontColor), ), ) ]), @@ -230,21 +215,17 @@ class HomeGoodsItemSingle extends StatelessWidget { } if (goods.commission != null || goods.commission != '') { - var commissionDe = - style?.listStyle?.couponCommission?.commission?.bgType == 'img' - ? BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider(style?.listStyle - ?.couponCommission?.commission?.bgImg ?? - ''), - ), - borderRadius: BorderRadius.circular(2.5), - ) - : BoxDecoration( - color: HexColor.fromHex(style?.listStyle?.couponCommission - ?.commission?.bgColor), - borderRadius: BorderRadius.circular(2.5), - ); + var commissionDe = style?.listStyle?.couponCommission?.commission?.bgType == 'img' + ? BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider(style?.listStyle?.couponCommission?.commission?.bgImg ?? ''), + ), + borderRadius: BorderRadius.circular(2.5), + ) + : BoxDecoration( + color: HexColor.fromHex(style?.listStyle?.couponCommission?.commission?.bgColor), + borderRadius: BorderRadius.circular(2.5), + ); widgets.add( Container( @@ -270,8 +251,7 @@ class HomeGoodsItemSingle extends StatelessWidget { maxLines: 1, textAlign: TextAlign.center, text: TextSpan( - text: - '${style?.listStyle?.couponCommission?.commission?.text ?? ''}', + text: '${style?.listStyle?.couponCommission?.commission?.text ?? ''}', style: TextStyle( height: 1, fontSize: 11, @@ -308,7 +288,7 @@ class HomeGoodsItemSingle extends StatelessWidget { _createPrice(), _createOriginPrice(), Expanded(child: Container()), - _createSale(), + style?.listStyle?.hotRank?.isOpen == "0"? _createSale():Container(), ], ), ); @@ -366,4 +346,71 @@ class HomeGoodsItemSingle extends StatelessWidget { style: TextStyle(fontSize: 11, color: HexColor.fromHex('#999999')), ); } + + ///热点 + _buildHotItem() { + var hotRank=style?.listStyle?.hotRank; + return Row( + children: [ + Expanded( + child: Stack( + alignment: Alignment.centerLeft, + children: [ + Row( + children: [ + Expanded( + child: Container( + alignment: Alignment.centerLeft, + height: 20, + padding: EdgeInsets.only( + left: 20, + ), + margin: + EdgeInsets.only(right: 20, left: 10), + color: HexColor.fromHex( + hotRank.bgColor ?? ""), + child: Text( + (goods.inorderCount??"") , + style: TextStyle( + color: Colors.white, + fontSize: 11, + fontFamily: 'Din', + package: 'zhiying_comm'), + ), + )) + ], + ), + Container( + width: 24, + height: 24, + child: CachedNetworkImage( + imageUrl: + hotRank?.hotSaleImg ?? "", + width: 24, + height: 24, + placeholder: (context, _) => + Container(color: Colors.yellow), + fit: BoxFit.fill, + ), + ), + Align( + alignment: Alignment.centerRight, + child: Container( + height: 24, + width: 63.5, + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + hotRank.buyNowImg ?? + ""), + fit: BoxFit.fitWidth), + borderRadius: + BorderRadius.circular(20)), + margin: EdgeInsets.only(right: 0), + )) + ], + )) + ], + ); + } } diff --git a/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart index 3db5fdd..a9cab3a 100644 --- a/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart +++ b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart @@ -5,6 +5,10 @@ import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:zhiying_base_widget/dialog/loading/loading.dart'; import 'package:zhiying_base_widget/dialog/loading/loading_dialog.dart'; import 'package:zhiying_base_widget/pages/hot_ranking_page/hot_ranking_page_bloc.dart'; +import 'package:zhiying_base_widget/widgets/home/home_goods/home_goods_item_single.dart'; +import 'package:zhiying_base_widget/widgets/home/home_goods/models/home_goods_list_style_model.dart'; +import 'package:zhiying_base_widget/widgets/home/home_goods/models/home_goods_model.dart'; +import 'package:zhiying_base_widget/widgets/home/home_goods/models/home_goods_style_model.dart'; import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_goods/hot_ranking_goods.dart'; import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart'; import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_model.dart'; @@ -29,7 +33,7 @@ class _HotRankingState extends State HotRankingListBloc _bloc; TabController _tabController; RefreshController _refreshController; - List goods; + List goods; HotRankingPageBloc _pageBloc; @@ -119,12 +123,15 @@ class _HotRankingState extends State } Widget _buildListItem(BuildContext context, int index) { - return HotRankingGoods( - styleModel: - HotRankingListModel.fromJson(json.decode(widget.data['data'])), - good: goods[index], - index: index, - ); + HomeGoodsStyleModel homeGoodsStyleModel=HomeGoodsStyleModel(); + homeGoodsStyleModel.listStyle=HomeGoodsListStyleModel.fromJson(json.decode(widget.data['data'])); + return HomeGoodsItemSingle(goods[index],homeGoodsStyleModel); + // return HotRankingGoods( + // styleModel: + // HotRankingListModel.fromJson(json.decode(widget.data['data'])), + // good: goods[index], + // index: index, + // ); } @override diff --git a/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart b/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart index 520b2b4..9e37794 100644 --- a/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart +++ b/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart @@ -1,15 +1,17 @@ +import 'package:zhiying_base_widget/widgets/home/home_goods/models/home_goods_model.dart'; + class HotRankingListDataModel { String provider; - List good; + List good; HotRankingListDataModel({this.provider, this.good}); HotRankingListDataModel.fromJson(Map json) { provider = json['provider']; if (json['good'] != null) { - good = new List(); + good = new List(); json['good'].forEach((v) { - good.add(new Good.fromJson(v)); + good.add(new HomeGoodsModel.fromJson(v)); }); } } diff --git a/lib/widgets/mine/mine_header/mine_header_static_container.dart b/lib/widgets/mine/mine_header/mine_header_static_container.dart index f1cd62e..fa3a98e 100644 --- a/lib/widgets/mine/mine_header/mine_header_static_container.dart +++ b/lib/widgets/mine/mine_header/mine_header_static_container.dart @@ -50,7 +50,6 @@ class _MineStaticContainerState extends State { children: [ Container( width: 120, - height: 20, child: Text( widget.staticModel.loginName, style: TextStyle( diff --git a/lib/widgets/mine/mine_nav/mine_nav_bg.dart b/lib/widgets/mine/mine_nav/mine_nav_bg.dart index 4051ae0..2f77c4b 100644 --- a/lib/widgets/mine/mine_nav/mine_nav_bg.dart +++ b/lib/widgets/mine/mine_nav/mine_nav_bg.dart @@ -9,12 +9,13 @@ import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifi class MineNavBg extends StatefulWidget { final Map data; Map model; - MineNavBg(this.data, {Key key}) : super(key: key){ - try{ - model = jsonDecode(data['data']); - } catch(e,s){ - Logger.error(e,s); - } + + MineNavBg(this.data, {Key key}) : super(key: key) { + try { + model = jsonDecode(data['data']); + } catch (e, s) { + Logger.error(e, s); + } } @override @@ -22,6 +23,8 @@ class MineNavBg extends StatefulWidget { } class _MineNavBgState extends State { + int isFirst = 0; + @override void initState() { super.initState(); @@ -45,9 +48,10 @@ class _MineNavBgState extends State { @override Widget build(BuildContext context) { - Future.delayed(Duration.zero, () { - _updateBg(); - }); - return Container(); + // Future.delayed(Duration.zero, () { + // print("使用" + isFirst.toString()); + // _updateBg(); + // }); + return Container(); } } diff --git a/lib/widgets/others/mine_header_bg_widget.dart b/lib/widgets/others/mine_header_bg_widget.dart index 0ec0ef5..979ae60 100644 --- a/lib/widgets/others/mine_header_bg_widget.dart +++ b/lib/widgets/others/mine_header_bg_widget.dart @@ -1,11 +1,17 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:zhiying_base_widget/pages/main_page/main_page_bloc.dart'; import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifier.dart'; +import 'package:zhiying_comm/util/base_bloc.dart'; +import ''; class MineHeaderBgWidget extends StatefulWidget { - final ScrollController controller; + ScrollController controller; + Widget bgWidget; - const MineHeaderBgWidget({Key key, this.controller}) : super(key: key); + MineHeaderBgWidget({Key key, this.controller, this.bgWidget}) : super(key: key); @override _MineHeaderBgWidgetState createState() => _MineHeaderBgWidgetState(); @@ -15,12 +21,10 @@ class _MineHeaderBgWidgetState extends State { int zIndex = 0; double _offsetY = 0; double _height = 300; - _MineHeaderBgContainer _content; - @override void initState() { super.initState(); - _content = _MineHeaderBgContainer(); + if (widget.controller != null) { widget.controller.addListener(() { @@ -41,20 +45,28 @@ class _MineHeaderBgWidgetState extends State { Widget build(BuildContext context) { return Transform.translate( offset: Offset(0, _offsetY), - child: _content, + child: _MineHeaderBgContainer(bgWidget: widget?.bgWidget), ); } } class _MineHeaderBgContainer extends StatefulWidget { + Widget bgWidget; + + _MineHeaderBgContainer({Key key, this.bgWidget}) : super(key: key); + @override _MineHeaderBgContainerState createState() => _MineHeaderBgContainerState(); } class _MineHeaderBgContainerState extends State<_MineHeaderBgContainer> { + @override Widget build(BuildContext context) { print('_MineHeaderBgContainerState build'); + if (widget.bgWidget != null) { + return widget.bgWidget; + } return Consumer(builder: (context, model, widget) { return Stack( fit: StackFit.passthrough,