| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import 'package:flutter/material.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:go_router/go_router.dart';
- import 'package:news_app/ui/video/video_detail_page.dart';
- import 'package:news_app/widget/load_image.dart';
- import '../../constant/color_res.dart';
- import '../../gen/assets.gen.dart';
- import '../../model/activity_model.dart';
- import '../../widget/my_txt.dart';
- /// @author: bo.zeng
- /// @email: cnhbwds@gmail.com
- /// @date: 2025 2025/4/9 16:00
- /// @description:
- class ActivityVideoItemWidget extends StatelessWidget {
- final ActivityModelRecord newData;
- const ActivityVideoItemWidget({super.key, required this.newData});
- @override
- Widget build(BuildContext context) {
- return GestureDetector(
- onTap: () {
- context.push(
- '/video/detail',
- extra: VideoParam(id: newData.contentId ?? ""),
- );
- },
- child: Column(
- children: [
- Flexible(
- flex: 9,
- child: Stack(
- alignment: Alignment.center,
- children: [
- ClipRRect(
- borderRadius: BorderRadius.only(
- topLeft: Radius.circular(8.r),
- topRight: Radius.circular(8.r),
- ),
- child: LoadImage(
- newData.image ?? '',
- fit: BoxFit.cover,
- width: 170.w,
- height: 276.h,
- holderImg: 'none',
- ),
- ),
- Image.asset(
- Assets.images.playIcon.path,
- width: 40.w,
- height: 40.w,
- ),
- ],
- ),
- ),
- Flexible(
- flex: 1,
- child: Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.only(
- bottomLeft: Radius.circular(8.r),
- bottomRight: Radius.circular(8.r),
- ),
- color: Colors.white,
- ),
- padding: EdgeInsets.symmetric(vertical: 6.h),
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- SizedBox(width: 5.w),
- Expanded(
- child: myTxt(
- text: newData.title ?? "",
- color: Colors.black,
- maxLines: 1,
- fontSize: 10.sp,
- ),
- ),
- SizedBox(width: 2.w),
- Icon(
- newData.isLiked == true
- ? Icons.favorite
- : Icons.favorite_border,
- size: 12.w,
- ),
- myTxt(
- text: newData.status ?? "0",
- color: newData.isLiked == true ? Colors.red : color666666,
- fontSize: 10.sp,
- ),
- SizedBox(width: 5.w),
- ],
- ),
- ),
- ),
- ],
- ),
- );
- }
- }
|