This commit is contained in:
xh 2024-07-16 15:53:05 +08:00
parent 35736fe025
commit 8ad6747402
7 changed files with 85 additions and 69 deletions

View File

@ -1,6 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:easy_refresh/easy_refresh.dart'; import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:wallpaperx/common/components/easy_loading.dart'; import 'package:wallpaperx/common/components/easy_loading.dart';
import 'package:wallpaperx/common/http/http_util.dart'; import 'package:wallpaperx/common/http/http_util.dart';
@ -12,6 +13,7 @@ class ClsDetController extends GetxController {
late final EasyRefreshController refreshController = EasyRefreshController(controlFinishLoad: true); late final EasyRefreshController refreshController = EasyRefreshController(controlFinishLoad: true);
RxList wallpaperList = [].obs; RxList wallpaperList = [].obs;
late String clsName = ""; late String clsName = "";
late ScrollController scrollController;
/// ///
int skip = 0; int skip = 0;
@ -20,6 +22,7 @@ class ClsDetController extends GetxController {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
scrollController = ScrollController();
clsName = Get.arguments ?? ""; clsName = Get.arguments ?? "";
getImages(); getImages();
} }

View File

@ -29,28 +29,32 @@ class ClsDetView extends GetView<ClsDetController> {
() => EasyRefresh( () => EasyRefresh(
controller: controller.refreshController, controller: controller.refreshController,
onLoad: controller.onLoad, onLoad: controller.onLoad,
child: MasonryGridView.count( child: Scrollbar(
itemCount: controller.wallpaperList.length, controller: controller.scrollController,
crossAxisCount: 2, child: MasonryGridView.count(
mainAxisSpacing: 20.w, controller: controller.scrollController,
crossAxisSpacing: 20.w, itemCount: controller.wallpaperList.length,
padding: EdgeInsets.fromLTRB( crossAxisCount: 2,
16, mainAxisSpacing: 20.w,
32, crossAxisSpacing: 20.w,
16, padding: EdgeInsets.fromLTRB(
MediaQuery.of(context).padding.bottom, 16,
).w, 32,
itemBuilder: (context, index) { 16,
ImageModel item = controller.wallpaperList[index]; MediaQuery.of(context).padding.bottom,
return GestureDetector( ).w,
onTap: () => controller.onTapItem(index), itemBuilder: (context, index) {
child: ImageNetworkWidget( ImageModel item = controller.wallpaperList[index];
url: item.imageUrl, return GestureDetector(
aspectRatio: item.width! / item.height!, onTap: () => controller.onTapItem(index),
radius: 14.r, child: ImageNetworkWidget(
), url: item.imageUrl,
); aspectRatio: item.width! / item.height!,
}, radius: 14.r,
),
);
},
),
), ),
), ),
), ),

View File

@ -16,7 +16,7 @@ import 'package:wallpaperx/routes/app_pages.dart';
class DiscoverController extends GetxController { class DiscoverController extends GetxController {
late final EasyRefreshController refreshController; late final EasyRefreshController refreshController;
late ScrollController scrollViewController; late ScrollController scrollController;
HomeController homeController = Get.find<HomeController>(); HomeController homeController = Get.find<HomeController>();
@ -34,7 +34,7 @@ class DiscoverController extends GetxController {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
scrollViewController = ScrollController(initialScrollOffset: 0.0); scrollController = ScrollController();
refreshController = EasyRefreshController(controlFinishLoad: true); refreshController = EasyRefreshController(controlFinishLoad: true);
getImages(); getImages();
} }

View File

@ -150,23 +150,27 @@ class DiscoverView extends GetView<DiscoverController> {
onLoad: controller.onLoad, onLoad: controller.onLoad,
viewState: controller.viewState.value, viewState: controller.viewState.value,
height: discoverListHeight, height: discoverListHeight,
child: MasonryGridView.count( child: Scrollbar(
itemCount: controller.images.length, controller: controller.scrollController,
crossAxisCount: 2, child: MasonryGridView.count(
mainAxisSpacing: 20.w, controller: controller.scrollController,
crossAxisSpacing: 20.w, itemCount: controller.images.length,
padding: const EdgeInsets.fromLTRB(16, 0, 16, 0).w, crossAxisCount: 2,
itemBuilder: (context, index) { mainAxisSpacing: 20.w,
ImageModel item = controller.images[index]; crossAxisSpacing: 20.w,
return GestureDetector( padding: const EdgeInsets.fromLTRB(16, 0, 16, 0).w,
onTap: () => controller.onTapGridItem(index), itemBuilder: (context, index) {
child: ImageNetworkWidget( ImageModel item = controller.images[index];
url: item.imageUrl, return GestureDetector(
aspectRatio: item.width! / item.height!, onTap: () => controller.onTapGridItem(index),
radius: 10.r, child: ImageNetworkWidget(
), url: item.imageUrl,
); aspectRatio: item.width! / item.height!,
}, radius: 10.r,
),
);
},
),
), ),
), ),
); );

View File

@ -14,7 +14,7 @@ import 'package:wallpaperx/routes/app_pages.dart';
class CSearchController extends GetxController { class CSearchController extends GetxController {
late final EasyRefreshController refreshController; late final EasyRefreshController refreshController;
late ScrollController scrollViewController; late ScrollController scrollController;
RxList searchList = [].obs; RxList searchList = [].obs;
RxInt total = 0.obs; RxInt total = 0.obs;
@ -44,7 +44,7 @@ class CSearchController extends GetxController {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
scrollViewController = ScrollController(initialScrollOffset: 0.0); scrollController = ScrollController(initialScrollOffset: 0.0);
refreshController = EasyRefreshController(controlFinishLoad: true); refreshController = EasyRefreshController(controlFinishLoad: true);
} }

View File

@ -29,12 +29,11 @@ class SearchView extends GetView<CSearchController> {
), ),
_buildSearchInput(), _buildSearchInput(),
if (controller.searchList.isNotEmpty) ...[ if (controller.searchList.isNotEmpty) ...[
24.verticalSpace,
Text( Text(
"ALL ${controller.total}", "ALL ${controller.total}",
style: TextStyle(color: Colors.white, fontSize: 20.sp), style: TextStyle(color: Colors.white, fontSize: 20.sp),
), ),
24.verticalSpace, 10.verticalSpace,
_buildMasonryGridView(), _buildMasonryGridView(),
] else ...[ ] else ...[
Expanded(child: Container()), Expanded(child: Container()),
@ -52,23 +51,27 @@ class SearchView extends GetView<CSearchController> {
child: EasyRefresh( child: EasyRefresh(
controller: controller.refreshController, controller: controller.refreshController,
onLoad: controller.onLoad, onLoad: controller.onLoad,
child: MasonryGridView.count( child: Scrollbar(
itemCount: controller.searchList.length, controller: controller.scrollController,
crossAxisCount: 2, child: MasonryGridView.count(
mainAxisSpacing: 20.w, controller: controller.scrollController,
crossAxisSpacing: 21.w, itemCount: controller.searchList.length,
padding: EdgeInsets.zero, crossAxisCount: 2,
itemBuilder: (context, index) { mainAxisSpacing: 20.w,
ImageModel item = controller.searchList[index]; crossAxisSpacing: 21.w,
return GestureDetector( padding: EdgeInsets.zero,
onTap: () => controller.onTapItem(index), itemBuilder: (context, index) {
child: ImageNetworkWidget( ImageModel item = controller.searchList[index];
url: item.imageUrl, return GestureDetector(
aspectRatio: item.width! / item.height!, onTap: () => controller.onTapItem(index),
radius: 14.r, child: ImageNetworkWidget(
), url: item.imageUrl,
); aspectRatio: item.width! / item.height!,
}, radius: 14.r,
),
);
},
),
), ),
), ),
); );

View File

@ -26,6 +26,15 @@ class SettingsView extends GetView<SettingsController> {
children: [ children: [
_buildUserinfo(), _buildUserinfo(),
15.verticalSpace, 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(), _buildOptionItem(),
// SizedBox( // SizedBox(
// height: 400.w, // height: 400.w,
@ -101,13 +110,6 @@ class SettingsView extends GetView<SettingsController> {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
), ),
), ),
20.verticalSpace,
Container(
height: 0.5.w,
width: 260.w,
decoration:
BoxDecoration(color: Colors.white.withOpacity(.5)),
),
], ],
), ),
], ],