From 2e8615f61000448a4691b1b9c504d6963c5ed18b Mon Sep 17 00:00:00 2001 From: zhangmeng <494089941@qq.com> Date: Sun, 23 Jan 2022 17:27:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=9B=91=E5=90=AC=E8=BD=AE?= =?UTF-8?q?=E6=92=AD=E5=8F=98=E5=8C=96=EF=BC=8C=E8=A7=A3=E5=86=B3=E8=BD=AE?= =?UTF-8?q?=E6=92=AD=E5=8D=A1=E9=A1=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/home/home_page.dart | 35 +++++++++++++++++++++------------- lib/ui/market/market_page.dart | 4 +--- pubspec.lock | 14 +++++++------- pubspec.yaml | 2 +- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/lib/pages/home/home_page.dart b/lib/pages/home/home_page.dart index e3574593..2136625b 100644 --- a/lib/pages/home/home_page.dart +++ b/lib/pages/home/home_page.dart @@ -26,10 +26,10 @@ import 'package:aku_new_community/widget/others/user_tool.dart'; import 'package:badges/badges.dart'; import 'package:bot_toast/bot_toast.dart'; import 'package:cached_network_image/cached_network_image.dart'; +import 'package:card_swiper/card_swiper.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart'; -import 'package:flutter_swiper_null_safety/flutter_swiper_null_safety.dart'; import 'package:get/get.dart'; import 'package:jpush_flutter/jpush_flutter.dart'; import 'package:palette_generator/palette_generator.dart'; @@ -58,12 +58,14 @@ class _HomePageState extends State int sysCount = 0; int sum = 0; + int _currentSwiperIndex = 0; + // ActivityItemModel? _activityItemModel; List _activityItemModels = []; List _boardItemModels = []; List _swiperModels = []; - SwiperController _swiperController = SwiperController(); + SwiperController _swiperController = SwiperController(); ValueNotifier _barColor = ValueNotifier(Colors.transparent); @override @@ -80,6 +82,10 @@ class _HomePageState extends State } _scrollController = ScrollController(); _refreshController = EasyRefreshController(); + _swiperController.addListener(() { + //由于先触发监听后,再执行onChangeIndex函数,所以_currentSwiperIndex会比当前index少1,用+1并求余的方式获得真正当前index; + _swiperBarColor((_currentSwiperIndex + 1) % 3); + }); SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle(statusBarColor: Colors.transparent)); } @@ -487,18 +493,9 @@ class _HomePageState extends State aspectRatio: 375 / 160, child: Swiper( key: UniqueKey(), + controller: _swiperController, onIndexChanged: (index) async { - if (_swiperModels.isNotEmpty) { - var color = await PaletteGenerator.fromImageProvider( - CachedNetworkImageProvider( - API.image( - ImgModel.first(_swiperModels[index].voResourcesImgList)), - )); - _barColor.value = - color.dominantColor?.color ?? Colors.transparent; - } else { - _barColor.value = Colors.transparent; - } + _currentSwiperIndex = index; }, itemBuilder: (BuildContext context, int index) { return getSwiperImage(_swiperModels[index]); @@ -536,6 +533,18 @@ class _HomePageState extends State ); } + Future _swiperBarColor(int index) async { + if (_swiperModels.isNotEmpty) { + var color = + await PaletteGenerator.fromImageProvider(CachedNetworkImageProvider( + API.image(ImgModel.first(_swiperModels[index].voResourcesImgList)), + )); + _barColor.value = color.dominantColor?.color ?? Colors.transparent; + } else { + _barColor.value = Colors.transparent; + } + } + Widget getSwiperImage(SwiperModel swiperModel) { return Container( child: FadeInImage.assetNetwork( diff --git a/lib/ui/market/market_page.dart b/lib/ui/market/market_page.dart index 27283089..edbe8983 100644 --- a/lib/ui/market/market_page.dart +++ b/lib/ui/market/market_page.dart @@ -24,14 +24,12 @@ import 'package:aku_new_community/utils/network/base_list_model.dart'; import 'package:aku_new_community/utils/network/net_util.dart'; import 'package:aku_new_community/widget/home/home_sliver_app_bar.dart'; import 'package:aku_new_community/widget/others/rectIndicator.dart'; +import 'package:card_swiper/card_swiper.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:flutter_swiper_null_safety/flutter_swiper_null_safety.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; -import 'package:velocity_x/velocity_x.dart'; import 'category/new_category_page.dart'; import 'market_home_goods_card.dart'; diff --git a/pubspec.lock b/pubspec.lock index 43116429..d9653a50 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -176,6 +176,13 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.0.1" + card_swiper: + dependency: "direct main" + description: + name: card_swiper + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.1" carousel_slider: dependency: "direct main" description: @@ -503,13 +510,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.6.0" - flutter_swiper_null_safety: - dependency: "direct main" - description: - name: flutter_swiper_null_safety - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.2" flutter_test: dependency: "direct dev" description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index b684e7ba..d75e8ce6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -104,7 +104,7 @@ dependencies: #加载网络图片 cached_network_image: ^3.1.0 #轮播图 - flutter_swiper_null_safety: ^1.0.2 + card_swiper: ^2.0.1 #划动组件 carousel_slider: ^4.0.0-nullsafety.0 #跳转索引列表