import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:cs_resources/generated/assets.dart'; import 'package:cs_resources/constants/color_constants.dart'; import 'my_load_image.dart'; import 'search_app_bar.dart'; import 'utils/dark_theme_util.dart'; class MyAppBar { ///封装的默认的AppBar,Light默认模式下,黑色图标+黑色文本,Dark模式下,白色图标+白色文本 static AppBar appBar(BuildContext context, String title, {void Function()? backCallback, String? backIconPath, double? backIconWidth, double? backIconHeight, Color textColor = Colors.white, Color backgroundColor = Colors.transparent, SystemUiOverlayStyle? systemUiOverlayStyle, List? actions}) { return AppBar( //设置变色与背景颜色一致,避免滚动的时候AppBar变色 backgroundColor: backgroundColor, surfaceTintColor: backgroundColor, systemOverlayStyle: systemUiOverlayStyle, leading: Container( padding: const EdgeInsets.only(top: 3.5), child: IconButton( icon: MyAssetImage(backIconPath ?? Assets.baseLibWhiteBack, width: backIconWidth ?? 11, height: backIconHeight ?? 18), onPressed: () { if (backCallback != null) { backCallback(); } else { Get.back(); // Navigator.pop(context); } }, ), ), centerTitle: true, title: Text( title, style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w500), ), actions: actions, elevation: 0.0, bottom: PreferredSize( preferredSize: const Size.fromHeight(0.5), child: Divider( height: 0.5, indent: 0.0, color: ColorConstants.dividerBar, )), ); } //自定义高度快 static SizedBox rowHeight({double height = 30}) { return SizedBox(height: height); } //自定义宽度快 static SizedBox rowWidth({double width = 30}) { return SizedBox(width: width); } /// 带搜索的AppBar static AppBar appSearchBar(BuildContext context, {void Function()? backCallback, String? backPath, Color textColor = Colors.black, Color backgroundColor = Colors.white, ValueChanged? onSearch, ValueChanged? onChanged, VoidCallback? onClear, List? actions}) { return AppBar( backgroundColor: DarkThemeUtil.multiColors(backgroundColor, darkColor: ColorConstants.darkBlackItem), surfaceTintColor: DarkThemeUtil.multiColors(backgroundColor, darkColor: ColorConstants.darkBlackItem), // 标题与其他控件的间隔 titleSpacing: 0, leadingWidth: 40, leading: Container( padding: const EdgeInsets.only(top: 3.5), child: IconButton( icon: Get.isDarkMode ? MyAssetImage(backPath ?? Assets.baseLibWhiteBack, width: 11, height: 18) : MyAssetImage(backPath ?? Assets.baseLibBlackBack, width: 11, height: 18), onPressed: () { if (backCallback != null) { backCallback(); } else { Get.back(); // Navigator.pop(context); } }, ), ), centerTitle: true, title: SearchAppBar( onSearch: onSearch, onClear: onClear, onChanged: onChanged, borderRadius: 13, height: 28, ), actions: actions, elevation: 0.0, bottom: PreferredSize( preferredSize: const Size.fromHeight(0.5), child: Divider( height: 1.0, indent: 0.0, color: DarkThemeUtil.multiColors(ColorConstants.dividerA6, darkColor: ColorConstants.darkBlackItemDivider), )), ); } }