home_tab_header_widget.dart
3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:wow_english/common/extension/string_extension.dart';
import 'package:wow_english/pages/user/bloc/user_bloc.dart';
import '../../../common/core/app_config_helper.dart';
import '../../../common/core/module_cache.dart';
enum HeaderActionType {
//视频跟读
video,
//阶段选择
phase,
//磨耳朵
listen,
//购买
shop,
//个人信息
user,
}
class HomeTabHeaderWidget extends StatelessWidget {
const HomeTabHeaderWidget(
{super.key, this.courseModuleCode, this.actionTap, this.onBack});
final String? courseModuleCode;
final Function(HeaderActionType type)? actionTap;
final VoidCallback? onBack;
@override
Widget build(BuildContext context) {
return BlocBuilder<UserBloc, UserState>(
builder: (context, state) {
return Container(
height: 45,
width: double.infinity,
color: ModuleCache.instance.getCurrentThemeColor(),
padding: EdgeInsets.symmetric(horizontal: 9.5.w),
child: Row(
children: [
ScreenUtil().bottomBarHeight.horizontalSpace,
GestureDetector(
onTap: () {
if (onBack == null) {
Navigator.pop(context);
} else {
onBack?.call();
}
},
child: Container(
alignment: Alignment.center,
child: Image.asset(
'back_around'.assetPng,
height: 40.h,
width: 40.w,
),
),
),
20.horizontalSpace,
Expanded(
child: Text(
ModuleCache.instance.getCurrentThemeName(),
textAlign: TextAlign.left,
style: const TextStyle(color: Colors.white, fontSize: 30.0),
)),
GestureDetector(
onTap: () {
if (actionTap != null) {
actionTap!(HeaderActionType.phase);
}
},
child: Image(
image: AssetImage('home'.assetPng),
width: 36.0.w,
height: 36.0.h,
fit: BoxFit.contain)),
8.horizontalSpace,
GestureDetector(
onTap: () {
if (actionTap != null) {
actionTap!(HeaderActionType.listen);
}
},
child: Image(
image: AssetImage('listen'.assetPng),
width: 36.0.w,
height: 36.0.h,
fit: BoxFit.contain)),
8.horizontalSpace,
Offstage(
offstage: AppConfigHelper.shouldHidePay(),
child: GestureDetector(
onTap: () {
if (actionTap != null) {
actionTap!(HeaderActionType.shop);
}
},
child: Image(
image: AssetImage('shop'.assetPng),
width: 36.0.w,
height: 36.0.h,
fit: BoxFit.contain)),
),
ScreenUtil().bottomBarHeight.horizontalSpace,
],
));
},
);
}
}