skywood/lib/pages/home/widgets/hot_cartridge_widget.dart

46 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:skywood/main/lib_file.dart';
import '../../../utils/models/drama/skywood_drama.dart';
import '../players/page/drama_detail_page.dart';
class HotCartridgeWidget extends StatelessWidget {
const HotCartridgeWidget({super.key,
required this.dramaList,
});
final List<SkywoodDrama> dramaList;
@override
Widget build(BuildContext context) {
return SliverGrid.builder(
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3, // 每行 2 列
crossAxisSpacing: 10, // 列间距
mainAxisSpacing: 10, // 行间距
childAspectRatio: 110 / 174, // 宽高比
),
itemBuilder: (context, index) {
return _buildItem(dramaList[index], index);
}, itemCount: dramaList.length>6 ? 6 : dramaList.length);
}
Widget _buildItem(SkywoodDrama drama, int index) {
return Stack(
children: [
SizedBox(
width: 110.w, height: 174.h,
),
Positioned(
top: 1, left: 5.w, right: 5.w,
child: HelpImg.network(drama.imageUrl, width: 100.w, height: 130.h, fit: BoxFit.cover),
),
HelpImg.asset(index<3?ConstImg.hotBg1:ConstImg.hotBg2, width: 110.w, height: 174.h)
],
).addInkWell(onTap: () {
HelpNav.to(DramaDetailPage(dramaBean: drama));
});
}
}