home_tab_header_widget.dart 3.45 KB
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!yellow',
            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,
        ],
      ),
    );
  }
}