lesson_item_widget.dart 2.65 KB
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/widgets/ow_image_widget.dart';
import 'package:wow_english/models/course_module_entity.dart';
import 'package:wow_english/utils/color_util.dart';

class LessonItemWidget extends StatelessWidget {
  const LessonItemWidget({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: HexColor(model?.courseModuleThemeColor??'#FFC0C3E7'),
              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?.name??'',
                  style: TextStyle(
                      color: Colors.white,
                      fontSize: 12.sp
                  ),
                ),
                Text(
                  model?.des??'',
                  maxLines: 1,
                  style: TextStyle(
                      color: Colors.white,
                      fontSize: 12.sp
                  ),
                )
              ],
            ),
          )
        ],
      ),
    );
  }
}