Blame view

lib/pages/lessons/widgets/lesson_item_widget.dart 1.88 KB
60e47f7c   liangchengyou   feat:课程选择功能
1
2
  import 'package:flutter/material.dart';
  import 'package:flutter_screenutil/flutter_screenutil.dart';
8988aa69   liangchengyou   feat:首页+课程列表数据获取
3
4
  import 'package:wow_english/common/extension/string_extension.dart';
  import 'package:wow_english/models/course_module_entity.dart';
60e47f7c   liangchengyou   feat:课程选择功能
5
6
  
  class LessonItemWidget extends StatelessWidget {
8988aa69   liangchengyou   feat:首页+课程列表数据获取
7
    const LessonItemWidget({super.key, required this.isSelected, this.model, this.onClickEvent});
60e47f7c   liangchengyou   feat:课程选择功能
8
9
    ///是否被选中
    final bool isSelected;
8988aa69   liangchengyou   feat:首页+课程列表数据获取
10
11
    final CourseModuleEntity? model;
    final Function()? onClickEvent;
60e47f7c   liangchengyou   feat:课程选择功能
12
13
14
  
    @override
    Widget build(BuildContext context) {
8988aa69   liangchengyou   feat:首页+课程列表数据获取
15
16
17
18
19
20
21
22
23
      return GestureDetector(
        onTap: () {
          if (!isSelected) {
            return;
          }
          onClickEvent?.call();
        },
        child: isSelected?_selectWidget():_unSelectWidget(),
      );
60e47f7c   liangchengyou   feat:课程选择功能
24
25
26
27
    }
  
    Widget _unSelectWidget() {
      return Container(
8988aa69   liangchengyou   feat:首页+课程列表数据获取
28
        decoration: BoxDecoration(
60e47f7c   liangchengyou   feat:课程选择功能
29
            image: DecorationImage(
8988aa69   liangchengyou   feat:首页+课程列表数据获取
30
                image: AssetImage('gendubeij'.assetPng)
60e47f7c   liangchengyou   feat:课程选择功能
31
32
            )
        ),
8988aa69   liangchengyou   feat:首页+课程列表数据获取
33
34
35
        child: Image.network(
            model?.picUrl??'',
        ),
60e47f7c   liangchengyou   feat:课程选择功能
36
37
38
39
40
41
42
      );
    }
  
    Widget _selectWidget() {
      return Container(
        padding: const EdgeInsets.all(10),
        decoration: BoxDecoration(
8988aa69   liangchengyou   feat:首页+课程列表数据获取
43
44
45
          image: DecorationImage(
            image: AssetImage('gendubeij'.assetPng)
          )
60e47f7c   liangchengyou   feat:课程选择功能
46
47
48
49
50
51
        ),
        child:  Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Expanded(
              child: Image.network(
8988aa69   liangchengyou   feat:首页+课程列表数据获取
52
53
                  model?.picUrl??'',
                  fit: BoxFit.contain
60e47f7c   liangchengyou   feat:课程选择功能
54
55
56
57
58
              ),
            ),
            10.verticalSpace,
            Container(
              color: Colors.red,
8988aa69   liangchengyou   feat:首页+课程列表数据获取
59
60
              padding: EdgeInsets.symmetric(horizontal: 10.w),
              child: Column(
60e47f7c   liangchengyou   feat:课程选择功能
61
                children: [
8988aa69   liangchengyou   feat:首页+课程列表数据获取
62
63
64
65
66
                  Text(model?.name??''),
                  Text(
                    model?.des??'',
                    maxLines: 1,
                  )
60e47f7c   liangchengyou   feat:课程选择功能
67
68
69
70
71
72
73
74
                ],
              ),
            )
          ],
        ),
      );
    }
  }