Wallpaper-Genie/lib/page/collection/collection_view.dart
2024-07-22 17:52:41 +08:00

52 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:get/get.dart';
import 'package:wallpaperx/common/components/image_network_widget.dart';
import 'package:wallpaperx/common/components/view_state_widget.dart';
import 'package:wallpaperx/entity/image_model.dart';
import 'collection_controller.dart';
class CollectionView extends GetView<CollectionController> {
const CollectionView({super.key});
@override
Widget build(BuildContext context) {
Get.put(CollectionController());
return Obx(
() => ViewStateWidget(
viewState: controller.viewState,
child: MediaQuery.removePadding(
context: context,
removeTop: true,
child: Scrollbar(
controller: controller.scrollController,
child: MasonryGridView.count(
controller: controller.scrollController,
itemCount: controller.favoriteList.length,
crossAxisCount: 2,
mainAxisSpacing: 15.w,
crossAxisSpacing: 15.w,
padding: const EdgeInsets.fromLTRB(15, 20, 15, 0).w,
physics: const BouncingScrollPhysics(),
itemBuilder: (context, index) {
ImageModel item = controller.favoriteList[index];
return GestureDetector(
onTap: () => controller.toImageDetail(index),
onLongPress: () => controller.onLongPressImage(index),
child: ImageNetworkWidget(
url: item.imageUrl,
radius: 13.r,
aspectRatio: item.width! / item.height!,
),
);
},
),
),
),
),
);
}
}