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/generated/assets.dart'; import 'package:wallpaperx/page/home/home_controller.dart'; ///个人信息侧滑页面 class DrawerView extends StatelessWidget { const DrawerView({super.key}); @override Widget build(BuildContext context) { HomeController controller = Get.find(); return Drawer( width: 320.w, backgroundColor: Colors.black, child: Container( decoration: const BoxDecoration( image: DecorationImage( image: AssetImage(Assets.imagesHomeBackground), fit: BoxFit.cover, ), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox(height: MediaQuery.of(context).padding.top + 15.w), Container( margin: EdgeInsets.only(left: 16.w), child: Text( "Style classification", style: TextStyle( fontSize: 24.sp, fontWeight: FontWeight.w600, color: Colors.white), ), ), 10.verticalSpace, Expanded( child: MasonryGridView.count( itemCount: controller.categoryList.length, crossAxisCount: 2, mainAxisSpacing: 10.w, crossAxisSpacing: 10.w, padding: EdgeInsets.fromLTRB( 8, 0, 8, MediaQuery.of(context).padding.bottom + 10, ).w, itemBuilder: (context, index) { return GestureDetector( onTap: () => controller .onTapToCategory(controller.categoryList[index]), child: Stack( alignment: AlignmentDirectional.bottomStart, children: [ Container( clipBehavior: Clip.hardEdge, decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.w), ), child: Image.asset( controller.categoryImgList[index], ), ), Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.w), color: Colors.black54, ), padding: const EdgeInsets.symmetric( horizontal: 9, ).w, margin: const EdgeInsets.symmetric( vertical: 9, horizontal: 9, ).w, child: Text( controller.categoryList[index], style: TextStyle( fontSize: 14.sp, color: Colors.white, fontWeight: FontWeight.w600, ), ), ), ], ), ); }, ), ), ], ), ), ); } }