home_tab_header_widget.dart
3.45 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
112
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:wow_english/common/core/user_util.dart';
import 'package:wow_english/common/extension/string_extension.dart';
import 'package:wow_english/utils/image_util.dart';
enum HeaderActionType {
//视频跟读
video,
//阶段选择
phase,
//磨耳朵
listen,
//购买
shop,
//个人信息
user
}
class HomeTabHeaderWidget extends StatelessWidget {
const HomeTabHeaderWidget({super.key, this.actionTap});
final Function(HeaderActionType type)? actionTap;
@override
Widget build(BuildContext context) {
return Container(
height: 45,
width: double.infinity,
color: Colors.purple,
padding: EdgeInsets.symmetric(horizontal: 9.5.w),
child: Row(
children: [
ScreenUtil().bottomBarHeight.horizontalSpace,
GestureDetector(
onTap: () => actionTap?.call(HeaderActionType.user),
child: Container(
decoration: BoxDecoration(
border: Border.all(
width: 1.0,
color: const Color(0xFF140C10),
),
borderRadius: BorderRadius.circular(21),
),
child: CircleAvatar(
radius: 21,
backgroundImage: ImageUtil.getImageProviderOnDefault(UserUtil.getUser()?.avatarUrl),
),
),
),
GestureDetector(
onTap: () {
if (actionTap != null) {
actionTap!(HeaderActionType.user);
}
},
child: Container(
margin: const EdgeInsets.only(left: 7),
padding: const EdgeInsets.all(4.0),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(2),
border: Border.all(width: 1.0, color: const Color(0xFF140C10), style: BorderStyle.solid),
),
child: Text(
UserUtil.getUser()?.name ?? '未登录',
style: TextStyle(color: const Color(0xFF333333), fontSize: 16.sp),
),
),
),
20.horizontalSpace,
const Expanded(
child: Text(
'learn wow',
textAlign: TextAlign.left,
style: TextStyle(color: Colors.white, fontSize: 30.0),
)),
IconButton(
onPressed: () {
if (actionTap != null) {
actionTap!(HeaderActionType.video);
}
},
icon: Image.asset('video'.assetPng)),
IconButton(
onPressed: () {
if (actionTap != null) {
actionTap!(HeaderActionType.phase);
}
},
icon: Image.asset('home'.assetPng)),
IconButton(
onPressed: () {
if (actionTap != null) {
actionTap!(HeaderActionType.listen);
}
},
icon: Image.asset('listen'.assetPng)),
// IconButton(
// onPressed: (){
// if(actionTap != null) {
// actionTap!(HeaderActionType.shop);
// }
// },
// icon: Image.asset('shop'.assetPng)
// ),
ScreenUtil().bottomBarHeight.horizontalSpace,
],
),
);
}
}