diff --git a/lib/page/cls_det/cls_det_controller.dart b/lib/page/cls_det/cls_det_controller.dart index 2b96af6..88a3a19 100644 --- a/lib/page/cls_det/cls_det_controller.dart +++ b/lib/page/cls_det/cls_det_controller.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:easy_refresh/easy_refresh.dart'; +import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:wallpaperx/common/components/easy_loading.dart'; import 'package:wallpaperx/common/http/http_util.dart'; @@ -12,6 +13,7 @@ class ClsDetController extends GetxController { late final EasyRefreshController refreshController = EasyRefreshController(controlFinishLoad: true); RxList wallpaperList = [].obs; late String clsName = ""; + late ScrollController scrollController; /// 页码、每页数量 int skip = 0; @@ -20,6 +22,7 @@ class ClsDetController extends GetxController { @override void onInit() { super.onInit(); + scrollController = ScrollController(); clsName = Get.arguments ?? ""; getImages(); } diff --git a/lib/page/cls_det/cls_det_view.dart b/lib/page/cls_det/cls_det_view.dart index ffffd5b..93d3826 100644 --- a/lib/page/cls_det/cls_det_view.dart +++ b/lib/page/cls_det/cls_det_view.dart @@ -29,28 +29,32 @@ class ClsDetView extends GetView { () => EasyRefresh( controller: controller.refreshController, onLoad: controller.onLoad, - child: MasonryGridView.count( - itemCount: controller.wallpaperList.length, - crossAxisCount: 2, - mainAxisSpacing: 20.w, - crossAxisSpacing: 20.w, - padding: EdgeInsets.fromLTRB( - 16, - 32, - 16, - MediaQuery.of(context).padding.bottom, - ).w, - itemBuilder: (context, index) { - ImageModel item = controller.wallpaperList[index]; - return GestureDetector( - onTap: () => controller.onTapItem(index), - child: ImageNetworkWidget( - url: item.imageUrl, - aspectRatio: item.width! / item.height!, - radius: 14.r, - ), - ); - }, + child: Scrollbar( + controller: controller.scrollController, + child: MasonryGridView.count( + controller: controller.scrollController, + itemCount: controller.wallpaperList.length, + crossAxisCount: 2, + mainAxisSpacing: 20.w, + crossAxisSpacing: 20.w, + padding: EdgeInsets.fromLTRB( + 16, + 32, + 16, + MediaQuery.of(context).padding.bottom, + ).w, + itemBuilder: (context, index) { + ImageModel item = controller.wallpaperList[index]; + return GestureDetector( + onTap: () => controller.onTapItem(index), + child: ImageNetworkWidget( + url: item.imageUrl, + aspectRatio: item.width! / item.height!, + radius: 14.r, + ), + ); + }, + ), ), ), ), diff --git a/lib/page/discover/discover_controller.dart b/lib/page/discover/discover_controller.dart index cd28a0f..522bddd 100644 --- a/lib/page/discover/discover_controller.dart +++ b/lib/page/discover/discover_controller.dart @@ -16,7 +16,7 @@ import 'package:wallpaperx/routes/app_pages.dart'; class DiscoverController extends GetxController { late final EasyRefreshController refreshController; - late ScrollController scrollViewController; + late ScrollController scrollController; HomeController homeController = Get.find(); @@ -34,7 +34,7 @@ class DiscoverController extends GetxController { @override void onInit() { super.onInit(); - scrollViewController = ScrollController(initialScrollOffset: 0.0); + scrollController = ScrollController(); refreshController = EasyRefreshController(controlFinishLoad: true); getImages(); } diff --git a/lib/page/discover/discover_view.dart b/lib/page/discover/discover_view.dart index 657425c..9edb4b7 100644 --- a/lib/page/discover/discover_view.dart +++ b/lib/page/discover/discover_view.dart @@ -150,23 +150,27 @@ class DiscoverView extends GetView { onLoad: controller.onLoad, viewState: controller.viewState.value, height: discoverListHeight, - child: MasonryGridView.count( - itemCount: controller.images.length, - crossAxisCount: 2, - mainAxisSpacing: 20.w, - crossAxisSpacing: 20.w, - padding: const EdgeInsets.fromLTRB(16, 0, 16, 0).w, - itemBuilder: (context, index) { - ImageModel item = controller.images[index]; - return GestureDetector( - onTap: () => controller.onTapGridItem(index), - child: ImageNetworkWidget( - url: item.imageUrl, - aspectRatio: item.width! / item.height!, - radius: 10.r, - ), - ); - }, + child: Scrollbar( + controller: controller.scrollController, + child: MasonryGridView.count( + controller: controller.scrollController, + itemCount: controller.images.length, + crossAxisCount: 2, + mainAxisSpacing: 20.w, + crossAxisSpacing: 20.w, + padding: const EdgeInsets.fromLTRB(16, 0, 16, 0).w, + itemBuilder: (context, index) { + ImageModel item = controller.images[index]; + return GestureDetector( + onTap: () => controller.onTapGridItem(index), + child: ImageNetworkWidget( + url: item.imageUrl, + aspectRatio: item.width! / item.height!, + radius: 10.r, + ), + ); + }, + ), ), ), ); diff --git a/lib/page/search/search_controller.dart b/lib/page/search/search_controller.dart index 7c15d9c..b5b6980 100644 --- a/lib/page/search/search_controller.dart +++ b/lib/page/search/search_controller.dart @@ -14,7 +14,7 @@ import 'package:wallpaperx/routes/app_pages.dart'; class CSearchController extends GetxController { late final EasyRefreshController refreshController; - late ScrollController scrollViewController; + late ScrollController scrollController; RxList searchList = [].obs; RxInt total = 0.obs; @@ -44,7 +44,7 @@ class CSearchController extends GetxController { @override void onInit() { super.onInit(); - scrollViewController = ScrollController(initialScrollOffset: 0.0); + scrollController = ScrollController(initialScrollOffset: 0.0); refreshController = EasyRefreshController(controlFinishLoad: true); } diff --git a/lib/page/search/search_view.dart b/lib/page/search/search_view.dart index 1598035..f29ae05 100644 --- a/lib/page/search/search_view.dart +++ b/lib/page/search/search_view.dart @@ -29,12 +29,11 @@ class SearchView extends GetView { ), _buildSearchInput(), if (controller.searchList.isNotEmpty) ...[ - 24.verticalSpace, Text( "ALL ${controller.total}", style: TextStyle(color: Colors.white, fontSize: 20.sp), ), - 24.verticalSpace, + 10.verticalSpace, _buildMasonryGridView(), ] else ...[ Expanded(child: Container()), @@ -52,23 +51,27 @@ class SearchView extends GetView { child: EasyRefresh( controller: controller.refreshController, onLoad: controller.onLoad, - child: MasonryGridView.count( - itemCount: controller.searchList.length, - crossAxisCount: 2, - mainAxisSpacing: 20.w, - crossAxisSpacing: 21.w, - padding: EdgeInsets.zero, - itemBuilder: (context, index) { - ImageModel item = controller.searchList[index]; - return GestureDetector( - onTap: () => controller.onTapItem(index), - child: ImageNetworkWidget( - url: item.imageUrl, - aspectRatio: item.width! / item.height!, - radius: 14.r, - ), - ); - }, + child: Scrollbar( + controller: controller.scrollController, + child: MasonryGridView.count( + controller: controller.scrollController, + itemCount: controller.searchList.length, + crossAxisCount: 2, + mainAxisSpacing: 20.w, + crossAxisSpacing: 21.w, + padding: EdgeInsets.zero, + itemBuilder: (context, index) { + ImageModel item = controller.searchList[index]; + return GestureDetector( + onTap: () => controller.onTapItem(index), + child: ImageNetworkWidget( + url: item.imageUrl, + aspectRatio: item.width! / item.height!, + radius: 14.r, + ), + ); + }, + ), ), ), ); diff --git a/lib/page/settings/settings_view.dart b/lib/page/settings/settings_view.dart index 90a6038..b28123a 100644 --- a/lib/page/settings/settings_view.dart +++ b/lib/page/settings/settings_view.dart @@ -26,6 +26,15 @@ class SettingsView extends GetView { children: [ _buildUserinfo(), 15.verticalSpace, + Container( + height: 1.w, + width: double.infinity, + margin: const EdgeInsets.symmetric(horizontal: 58).w, + decoration: BoxDecoration( + color: Colors.white.withOpacity(.5), + ), + ), + 15.verticalSpace, _buildOptionItem(), // SizedBox( // height: 400.w, @@ -101,13 +110,6 @@ class SettingsView extends GetView { fontWeight: FontWeight.w600, ), ), - 20.verticalSpace, - Container( - height: 0.5.w, - width: 260.w, - decoration: - BoxDecoration(color: Colors.white.withOpacity(.5)), - ), ], ), ],