瀏覽代碼

1、dialog缩小问题

2、关于我们
3、商品领券
4、其他优化
tags/0.0.2+1
PH2 4 年之前
父節點
當前提交
799a0be9ce
共有 15 個文件被更改,包括 192 次插入155 次删除
  1. +2
    -2
      example/android/app/src/main/res/values/styles.xml
  2. +3
    -0
      example/lib/main.dart
  3. +14
    -5
      lib/dialog/loading/loading.dart
  4. +4
    -4
      lib/dialog/loading/loading_dialog.dart
  5. +3
    -1
      lib/pages/about_us_page/about_us_page.dart
  6. +34
    -98
      lib/pages/goods_details_page/bloc/goods_details_page_repository.dart
  7. +6
    -2
      lib/pages/goods_details_page/goods_details_page.dart
  8. +2
    -0
      lib/pages/home_page/home_page.dart
  9. +5
    -3
      lib/pages/search_page/search_page.dart
  10. +37
    -18
      lib/widgets/goods_details/appbar/goods_details_appbar_widget.dart
  11. +27
    -0
      lib/widgets/goods_details/appbar/model/goods_details_appbar_model.dart
  12. +44
    -13
      lib/widgets/goods_details/evaluate/goods_details_evaluate_widget.dart
  13. +9
    -3
      lib/widgets/home/home_auth/home_auth.dart
  14. +1
    -1
      lib/widgets/home/home_notice/home_notice_widget.dart
  15. +1
    -5
      lib/widgets/home/home_slide_banner/home_slide_banner.dart

+ 2
- 2
example/android/app/src/main/res/values/styles.xml 查看文件

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Base application theme. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">@drawable/normal_background</item>
</style>
</resources>

+ 3
- 0
example/lib/main.dart 查看文件

@@ -8,6 +8,7 @@ import 'package:zhiying_base_widget/register.dart';
import 'package:zhiying_comm/zhiying_comm.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:zhiying_comm/util/update/app_update_util.dart';

import 'util/localizations_delegate.dart';

@@ -44,6 +45,8 @@ class _MyAppState extends State<MyApp> {
FlutterAlibc.initAlibc(version: "", appName: "").then((result) {
print("白川" + '${result.errorCode} ${result.errorMessage}');
});
// app更新插件
AppUpdateUtil.initXUpdate();
}

@override


+ 14
- 5
lib/dialog/loading/loading.dart 查看文件

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:zhiying_base_widget/dialog/loading/loading_dialog.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

// loading弹窗
class Loading {
@@ -14,7 +15,7 @@ class Loading {
return GestureDetector(
onTap: dismiss,
child: Container(
color: Colors.black.withOpacity(0.5),
color: Colors.black.withOpacity(0.3),
child: LoadingDialog(
message: msg,
),
@@ -22,12 +23,20 @@ class Loading {
);
});

//插入到 Overlay中显示 OverlayEntry
Overlay.of(context).insert(_overlayEntry);
try {
//插入到 Overlay中显示 OverlayEntry
Overlay.of(context).insert(_overlayEntry);
}catch(e, s){
Logger.error(e, s);
}
}

static dismiss() {
_overlayEntry?.remove();
_overlayEntry = null;
try {
_overlayEntry?.remove();
_overlayEntry = null;
}catch(e, s){
Logger.error(e, s);
}
}
}

+ 4
- 4
lib/dialog/loading/loading_dialog.dart 查看文件

@@ -21,17 +21,17 @@ class LoadingDialog extends StatelessWidget {
child: Container(
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white, borderRadius: BorderRadius.circular(8)),
color: Colors.transparent, borderRadius: BorderRadius.circular(8)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
width: 80,
height: 80,
width: 40,
height: 40,
child: LoadingIndicator(
indicatorType: Indicator.ballSpinFadeLoader,
color: Colors.redAccent,
color: Colors.white,
),
),
message == null || message == ''


+ 3
- 1
lib/pages/about_us_page/about_us_page.dart 查看文件

@@ -3,6 +3,7 @@ import 'package:zhiying_base_widget/pages/about_us_page/about_us_page_sk.dart';
import 'package:zhiying_base_widget/pages/about_us_page/bloc/about_us_bloc.dart';
import 'package:zhiying_base_widget/pages/about_us_page/bloc/about_us_repository.dart';
import 'package:zhiying_base_widget/pages/about_us_page/model/about_us_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/about_us_bloc.dart';
@@ -34,8 +35,9 @@ class _AboutUsPageContainer extends StatefulWidget {

class __AboutUsPageContainerState extends State<_AboutUsPageContainer> {
/// 检查更新
void _onClickCheckUpdate() {
void _onClickCheckUpdate() async{
Logger.log('点击了更新');
// AppUpdateUtil.updateApp(context);
}

/// 给个评价


+ 34
- 98
lib/pages/goods_details_page/bloc/goods_details_page_repository.dart 查看文件

@@ -2,6 +2,9 @@ import 'dart:convert';
import 'package:zhiying_comm/zhiying_comm.dart';

class GoodsDetailsPageRepository {

String _parentGoodsCoverImg;

/// 获取上个页面传进来的数据
Future<List<Map<String, dynamic>>> fetchParentPageData(final Map<String, dynamic> model) async {
try {
@@ -10,19 +13,7 @@ class GoodsDetailsPageRepository {
String goodId = model['good_id']?.toString();
if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) {
Map<String, dynamic> detailData = model['detail_data'];
return _baseDataProcess(goodId, provider, detailData);
// Logger.log('商品类型 = $provider, 商品ID = $goodId');
// List<Map<String, dynamic>> _pageData = [];
// List<dynamic> modLists = detailData['mod_list'];
// for (int i = 0; i < modLists.length; i++) {
// Map<String, dynamic> item = modLists[i];
// Map<String, dynamic> data = item['data'];
// Map<String, dynamic> baseData = {'provider': provider, 'good_id': goodId};
// data.addAll(baseData);
// item['data'] = data;
// _pageData.add(item);
// }
// return _pageData;
return _baseDataProcess(true, goodId, provider, detailData);
}
}
} catch (e, s) {
@@ -40,30 +31,7 @@ class GoodsDetailsPageRepository {
Logger.log('商品类型 = $provider, 商品ID = $goodId');
var result = await NetUtil.post('/api/v1/detail/$provider/$goodId', method: NetMethod.GET);
if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
return _baseDataProcess(goodId, provider, result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
// List<Map<String, dynamic>> _pageData = [];

/// 合并数据
// List<dynamic> modLists = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'];
// for (int i = 0; i < modLists.length; i++) {
// Map<String, dynamic> item = modLists[i];
// Map<String, dynamic> data = item['data'];
// Map<String, dynamic> style = jsonDecode(item['style']);
//
// Map<String, dynamic> baseData = {'provider': provider, 'good_id': goodId};
// style.addAll(baseData);
//
// if (!EmptyUtil.isEmpty(data)) {
// style.addAll(data);
// item['data'] = jsonEncode(style);
// _pageData.add(item);
// } else {
// item['data'] = jsonEncode(style);
// _pageData.add(item);
// }
// }
//
// return _pageData;
return _baseDataProcess(false, goodId, provider, result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
}
}
} catch (e, s) {
@@ -73,7 +41,7 @@ class GoodsDetailsPageRepository {
}

/// 数据处理
List<Map<String, dynamic>> _baseDataProcess(String goodId, String provider, final Map<String, dynamic> model) {
List<Map<String, dynamic>> _baseDataProcess(bool parentInput,String goodId, String provider, final Map<String, dynamic> model) {
if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId) && !EmptyUtil.isEmpty(model)) {
try {
List<Map<String, dynamic>> _pageData = [];
@@ -81,9 +49,34 @@ class GoodsDetailsPageRepository {
List<dynamic> modLists = model['mod_list'];
for (int i = 0; i < modLists.length; i++) {
Map<String, dynamic> item = modLists[i];
// ⚠️这里之所以要判断是否是String类型,是因为修改的是父亲页面传进来的model -> data 类型了。把dynamic变成了String
Map<String, dynamic> data = item['data'] is String ? jsonDecode(item['data']) : item['data'];
Map<String, dynamic> style = jsonDecode(item['style']);
// ⚠️ 这里之所以要判断是否是String类型,是因为修改的是父亲页面传进来的model -> data 类型了。把dynamic变成了String
Map<String, dynamic> data = !EmptyUtil.isEmpty(item['data']) ? item['data'] is String ? jsonDecode(item['data']) : item['data'] : new Map<String, dynamic>();

// ⚠️ 为了商品详情的轮播图能够快速加载,故把上一个页面传进来的第一张图片插入到轮播图集合的第一个图片中
if(item['mod_name'] == 'product_detail_carousel') {
if (parentInput) {
try {
var imageList = data['image_list'];
if (!EmptyUtil.isEmpty(imageList)) {
_parentGoodsCoverImg = imageList[0];
}
} catch (e, s) {
Logger.error(e, s);
}
} else {
try {
if (!EmptyUtil.isEmpty(_parentGoodsCoverImg) && !EmptyUtil.isEmpty(data) && !EmptyUtil.isEmpty(data['image_list'])) {
if(data['image_list'][0] != _parentGoodsCoverImg) {
data['image_list'].insert(0, _parentGoodsCoverImg);
}
}
}catch(e, s){
Logger.error(e, s);
}
}
}

Map<String, dynamic> style =!EmptyUtil.isEmpty(item['style']) ? jsonDecode(item['style']) : new Map<String, dynamic>();
style.addAll(baseData);

if (!EmptyUtil.isEmpty(data)) {
@@ -103,61 +96,4 @@ class GoodsDetailsPageRepository {
return null;
}

///【弃用】获取mod数据 把子mod数据塞在data中
// Future<List<Map<String, dynamic>>> fetchModData(final Map<String, dynamic> model) async{
// String provider = model['provider'];
// String goodId = model['good_id'];
// try {
// if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) {
// Logger.log('商品类型 = $provider, 商品ID = $goodId');
// var result = await NetUtil.post('/api/v1/detail/$provider/$goodId', method: NetMethod.GET);
// if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
// for (int i = 0; i < _pageData.length; i++) {
// //result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i];
// Map<String, dynamic> resultData = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i];
// Map<String, dynamic> data = jsonDecode(_pageData[i]['data']);
// if(!EmptyUtil.isEmpty(data)){
// data.addAll(resultData);
// _pageData[i]['data'] = jsonEncode(data);
// }else{
// _pageData[i]['data'] = (null != resultData && resultData.length > 0) ? jsonEncode(resultData) : '';
// }
// }
// return _pageData;
// }
// }
// }catch(e){
// Logger.log(e);
// }
// return null;
// }
//
// ///【弃用】初始化
// Future<List<Map<String, dynamic>>> fetchInitData(Map<String, dynamic> model) async {
// int id = 13;
// var result = await NetUtil.post('/api/v1/mod', method: NetMethod.POST, params: {'ids': [id]});
// try {
// if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
// return _loadData(id, result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
// }
// } catch (e) {
// Logger.log(e);
// }
// return null;
// }
//
// ///【弃用】处理数据
// List<Map<String, dynamic>> _loadData(int id, dynamic data) {
// String key = id.toString();
// Map<String, dynamic> json = Map<String, dynamic>.from(data);
// if (json.containsKey(key)) {
// List<dynamic> list = json[key];
// _pageData = list.map((item) {
// return Map<String, dynamic>.from(item);
// }).toList();
// return _pageData;
// }
// return null;
// }

}

+ 6
- 2
lib/pages/goods_details_page/goods_details_page.dart 查看文件

@@ -124,6 +124,10 @@ class _GoodsDetailsContainerState extends State<GoodsDetailsContainer> {
builder: (context, state) {
print('GoodsDetailsPage currente state = $state');
if (state is GoodsDetailsPageLoadedState) {
int length = state?.model?.length ?? 0;
if(length == 0){
return GoodsDetailsPageSkeleton();
}
return _getMainWidget(state?.model);
}
return GoodsDetailsPageSkeleton();
@@ -143,7 +147,7 @@ class _GoodsDetailsContainerState extends State<GoodsDetailsContainer> {
controller: _controller,
slivers: _createContent(context, datas ?? []),
),
Align(alignment: Alignment.topCenter, child: GoodsDetailsAppBarWidget()),
Align(alignment: Alignment.topCenter, child: GoodsDetailsAppBarWidget(datas[0])),
],
)),

@@ -156,7 +160,7 @@ class _GoodsDetailsContainerState extends State<GoodsDetailsContainer> {
List<Widget> list = List();

/// datas.length - 1 为最后一个在底部
for (int i = 0; i < datas.length - 1; i++) {
for (int i = 1; i < datas.length - 1; i++) {
WidgetModel item = WidgetModel.fromJson(Map<String, dynamic>.from(datas[i]));

print('item.modName ${item.modName}');


+ 2
- 0
lib/pages/home_page/home_page.dart 查看文件

@@ -8,6 +8,7 @@ import 'package:zhiying_base_widget/utils/contants.dart';
import 'package:zhiying_comm/models/base/base_tab_model.dart';
import 'package:zhiying_comm/util/image_util.dart';
import 'package:zhiying_comm/zhiying_comm.dart';
import 'package:zhiying_comm/util/update/app_update_util.dart';

class HomePage extends StatefulWidget {
HomePage({Key key}) : super(key: key);
@@ -33,6 +34,7 @@ class _HomePageState extends State<HomePage> {
Logger.error(error);
}
Constants.isShowIntellectDialog = false;
// AppUpdateUtil.updateApp(context);
super.initState();
}



+ 5
- 3
lib/pages/search_page/search_page.dart 查看文件

@@ -133,9 +133,11 @@ class _SearchPageContianerState extends State<SearchPageContianer> {
/// 骨架屏幕?
list.add(Container(
height: 200,
child: Center(
child: Text('暂时无数据哦~'),
),
width: double.infinity,
color: Colors.white,
// child: Center(
// child: Text('暂时无数据哦~'),
// ),
));
} else {
for (int i = 0; i < datas.length; i++) {


+ 37
- 18
lib/widgets/goods_details/appbar/goods_details_appbar_widget.dart 查看文件

@@ -1,24 +1,47 @@
import 'dart:convert';
import 'dart:ui';
import 'package:provider/provider.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:zhiying_base_widget/pages/goods_details_page/notifier/goods_details_appbar_color_notifier.dart';
import 'package:zhiying_base_widget/widgets/goods_details/appbar/model/goods_details_appbar_model.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

class GoodsDetailsAppBarWidget extends StatefulWidget {
final Map<String, dynamic> data;
GoodsDetailsAppBarModel model;

GoodsDetailsAppBarWidget(this.data, {Key key}) : super(key: key){
try{
model = GoodsDetailsAppBarModel.fromJson(jsonDecode(data['data']));
}catch(e, s){
Logger.error(e, s);
}
}

@override
_GoodsDetailsAppBarWidgetState createState() => _GoodsDetailsAppBarWidgetState();
}

class _GoodsDetailsAppBarWidgetState extends State<GoodsDetailsAppBarWidget> {

Color _starColor = Colors.transparent;


Color _starColor;
Color _endBgColor = HexColor.fromHex('#FF4242');
Color _endTextColor = HexColor.fromHex('#FFFFFF');

Color _bgColor = Colors.transparent;
Color _textColor = Colors.transparent;

@override
void initState() {
_starColor = Colors.transparent;
_endTextColor = HexColor.fromHex(widget?.model?.appBarNameColor ?? '#FFFFFF' );
_endBgColor = HexColor.fromHex(widget?.model?.appBarBgColor ?? '#FF4242');
super.initState();
}

@override
void didChangeDependencies() {
GoodsDetailsAppBarColorNotifier notifier = Provider.of<GoodsDetailsAppBarColorNotifier>(context);
@@ -41,29 +64,25 @@ class _GoodsDetailsAppBarWidgetState extends State<GoodsDetailsAppBarWidget> {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(left: 12.5),
child: SizedBox(
width: 40,
height: 40,
child: IconButton(
icon: Icon(
Icons.arrow_back_ios,
size: 22,
color: HexColor.fromHex('#FFFFFF'),
),
onPressed: () => Navigator.maybePop(context),
),
)),
GestureDetector(
onTap: ()=> Navigator.maybePop(context),
child: Padding(
padding: const EdgeInsets.only(left: 12.5),
child: SizedBox(
width: 25 + 12.5,
height: 25,
child: CachedNetworkImage(imageUrl: widget?.model?.appBarBackupIcon ?? '', ),
)),
),
Text(
'商品详情',
widget?.model?.appBarName ?? '商品详情',
style: TextStyle(color: _textColor, fontSize: 15, fontWeight: FontWeight.bold),
),
Padding(
padding: const EdgeInsets.only(right: 12.5),
child: SizedBox(
width: 40,
height: 40,
width: 25 + 12.5,
height: 25,
child: Container(
height: double.infinity,
width: double.infinity,


+ 27
- 0
lib/widgets/goods_details/appbar/model/goods_details_appbar_model.dart 查看文件

@@ -0,0 +1,27 @@
class GoodsDetailsAppBarModel {
String appBarName;
String appBarNameColor;
String appBarBgImg;
String appBarBgColor;
String appBarBackupIcon;

GoodsDetailsAppBarModel({this.appBarName, this.appBarNameColor, this.appBarBgImg, this.appBarBgColor, this.appBarBackupIcon});

GoodsDetailsAppBarModel.fromJson(Map<String, dynamic> json) {
appBarName = json['app_bar_name'];
appBarNameColor = json['app_bar_name_color'];
appBarBgImg = json['app_bar_bg_img'];
appBarBgColor = json['app_bar_bg_color'];
appBarBackupIcon = json['app_bar_backup_icon'];
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['app_bar_name'] = this.appBarName;
data['app_bar_name_color'] = this.appBarNameColor;
data['app_bar_bg_img'] = this.appBarBgImg;
data['app_bar_bg_color'] = this.appBarBgColor;
data['app_bar_backup_icon'] = this.appBarBackupIcon;
return data;
}
}

+ 44
- 13
lib/widgets/goods_details/evaluate/goods_details_evaluate_widget.dart 查看文件

@@ -1,9 +1,13 @@
import 'dart:convert';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:zhiying_base_widget/widgets/goods_details/evaluate/model/goods_details_evaluate_model.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:zhiying_comm/zhiying_comm.dart';
import 'package:flutter_alibc/flutter_alibc.dart';
import 'package:flutter_alibc/alibc_model.dart';
import 'package:provider/provider.dart';

///
/// 商品详情评价Widget
@@ -20,20 +24,49 @@ class GoodsDetailsEvaluateWidget extends StatelessWidget {
}
}

UserInfoModel _user;

/// 点击查看更多
void _openLookMore() {}
void _openLookMore(BuildContext context) async {
if (_user?.token == null || _user.token == '') {
print('need login...');
RouterUtil.goLogin(context);
return;
}

bool isAuth = await TaobaoAuth.isAuth();
if (!isAuth) {
TaobaoAuth.auth(context);
return;
}
TradeResult result;

if (!EmptyUtil.isEmpty(_modell?.comment_url)) {
if (Platform.isAndroid) {
result = await FlutterAlibc.openByUrl(url: _modell?.comment_url, backUrl: "alisdk://");
} else if (Platform.isIOS) {
result = await FlutterAlibc.openByUrl(url: _modell?.comment_url);
}
Logger.debug('${result.errorCode} ${result.errorMessage} ');
}
}

@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => _openLookMore(),
behavior: HitTestBehavior.opaque,
child: Container(
color: Colors.white,
margin: const EdgeInsets.only(top: 6),
width: double.infinity,
padding: const EdgeInsets.only(top: 15, bottom: 15, left: 12.5, right: 12.5),
child: getMainWidget(_modell),
_user = Provider.of<UserInfoNotifier>(context).userInfo;

return Visibility(
visible: !EmptyUtil.isEmpty(_modell?.comment_url),
child: GestureDetector(
onTap: () => _openLookMore(context),
behavior: HitTestBehavior.opaque,
child: Container(
color: Colors.white,
margin: const EdgeInsets.only(top: 6),
width: double.infinity,
padding: const EdgeInsets.only(top: 15, bottom: 15, left: 12.5, right: 12.5),
child: getMainWidget(_modell),
),
),
);
}
@@ -49,9 +82,8 @@ class GoodsDetailsEvaluateWidget extends StatelessWidget {
);
}


/// 左边图标加文字
Widget getLeftWidget(GoodsDetailsEvaluateModel model){
Widget getLeftWidget(GoodsDetailsEvaluateModel model) {
return Row(
children: <Widget>[
CachedNetworkImage(
@@ -63,5 +95,4 @@ class GoodsDetailsEvaluateWidget extends StatelessWidget {
],
);
}

}

+ 9
- 3
lib/widgets/home/home_auth/home_auth.dart 查看文件

@@ -28,16 +28,22 @@ class _HomeAuthState extends State<HomeAuth> {
@override
void initState() {
TaobaoAuth.isAuth().then((isAuth) {
_isAuth = isAuth;
setState(() {});
setState(() => this._isAuth = isAuth);
});

super.initState();
}

@override
Widget build(BuildContext context) {
void didChangeDependencies() {
_user = Provider.of<UserInfoNotifier>(context).userInfo;
_isAuth = _user.isTBAuth;
super.didChangeDependencies();
}

@override
Widget build(BuildContext context) {
if (_isAuth) {
// 授权过,不显示
return Container();


+ 1
- 1
lib/widgets/home/home_notice/home_notice_widget.dart 查看文件

@@ -151,7 +151,7 @@ class _MarqueeWidgetState extends State<MarqueeWidget> {
void initState() {
super.initState();

if (widget.count > 1) {
if (widget.count > 0) {
_controller = PageController();
_timer = Timer.periodic(Duration(seconds: 5), (timer) {
// 如果当前位于最后一页,则直接跳转到第一页,两者内容相同,跳转时视觉上无感知


+ 1
- 5
lib/widgets/home/home_slide_banner/home_slide_banner.dart 查看文件

@@ -7,6 +7,7 @@ import 'package:provider/provider.dart';
import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifier.dart';
import 'package:zhiying_base_widget/pages/message_notice_page/message_notice_page.dart';
import 'package:zhiying_base_widget/pages/team_details_page/team_details_page.dart';
import 'package:zhiying_base_widget/pages/vip_center_page/vip_center_page.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

import 'bloc/bloc.dart';
@@ -49,11 +50,6 @@ class _HomeSlideBannerContainerState extends State<HomeSlideBannerContainer> {
void _itemOnClick(IndexCarousel model) {
print('点击了 $model');
RouterUtil.route(model, model.toJson(), context);
// Navigator.push(context, CupertinoPageRoute(
// builder: (_) => PageFactory.create('goods_details', null)
// ));
// Navigator.push(context, CupertinoPageRoute(builder: (_)=> TeamPage()));

// Navigator.push(context, CupertinoPageRoute(builder: (_) => VipCenterPage(null)));
}



Loading…
取消
儲存