43 lines
1.3 KiB
Dart
43 lines
1.3 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';
|
|
|
|
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: 12, // 列间距
|
|
mainAxisSpacing: 5, // 行间距
|
|
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),
|
|
),
|
|
HelpImg.asset(index<3?ConstImg.hotBg1:ConstImg.hotBg2, width: 110.w, height: 174.h)
|
|
],
|
|
);
|
|
}
|
|
} |