1
This commit is contained in:
parent
35736fe025
commit
8ad6747402
@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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)),
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user