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 '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();
}

View File

@ -29,28 +29,32 @@ class ClsDetView extends GetView<ClsDetController> {
() => 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,
),
);
},
),
),
),
),

View File

@ -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<HomeController>();
@ -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();
}

View File

@ -150,23 +150,27 @@ class DiscoverView extends GetView<DiscoverController> {
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,
),
);
},
),
),
),
);

View File

@ -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);
}

View File

@ -29,12 +29,11 @@ class SearchView extends GetView<CSearchController> {
),
_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<CSearchController> {
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,
),
);
},
),
),
),
);

View File

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