import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/extension/string_extension.dart'; import 'package:wow_english/common/utils/color_parser.dart'; import 'package:wow_english/common/widgets/ow_image_widget.dart'; import 'package:wow_english/models/course_module_entity.dart'; ///阶段(模块)item布局 class ModuleItemWidget extends StatelessWidget { const ModuleItemWidget( {super.key, required this.isSelected, this.model, this.onClickEvent}); ///是否被选中 final bool isSelected; final CourseModuleEntity? model; final Function()? onClickEvent; @override Widget build(BuildContext context) { return GestureDetector( onTap: () { if (!isSelected) { return; } onClickEvent?.call(); }, child: isSelected ? _selectWidget() : _unSelectWidget(), ); } Widget _unSelectWidget() { return Container( padding: const EdgeInsets.all(20), decoration: BoxDecoration( image: DecorationImage(image: AssetImage('gendubeij'.assetPng))), child: OwImageWidget( name: model?.picUrl ?? '', ), ); } Widget _selectWidget() { return Container( padding: const EdgeInsets.all(10), decoration: BoxDecoration( image: DecorationImage( image: AssetImage( 'gendubeij'.assetPng, ), fit: BoxFit.fill), ), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded( child: OwImageWidget( name: model?.picUrl ?? '', ), ), 10.verticalSpace, Container( decoration: BoxDecoration( color: parseColor(model.getSafeThemeColor()), borderRadius: BorderRadius.circular(6.r), border: Border.all(color: const Color(0xFF333333), width: 1.0)), padding: EdgeInsets.symmetric(horizontal: 10.w), child: Column( children: [ Text( model?.getSafeName() ?? '', style: TextStyle(color: Colors.white, fontSize: 12.sp), ), Text( model?.des ?? '', maxLines: 1, style: TextStyle(color: Colors.white, fontSize: 12.sp), ) ], ), ) ], ), ); } }