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: 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? value, String? hintText, Color textColor = Colors.white, Color backgroundColor = Colors.transparent, ValueChanged? onSearch, ValueChanged? onChanged, SystemUiOverlayStyle? systemUiOverlayStyle, TextEditingController? controller, List? actions}) { return AppBar( backgroundColor: backgroundColor, surfaceTintColor: backgroundColor, systemOverlayStyle: systemUiOverlayStyle, // 标题与其他控件的间隔 titleSpacing: 0, leading: IconButton( icon: MyAssetImage(Assets.baseLibWhiteBack, width: 11, height: 18), onPressed: () { if (backCallback != null) { backCallback(); } else { Get.back(); // Navigator.pop(context); } }, ), centerTitle: true, title: SearchAppBar( onSearch: onSearch, onChanged: onChanged, value: value, hintText: hintText, controller: controller, ), actions: actions, elevation: 0.0, bottom: PreferredSize( preferredSize: const Size.fromHeight(0.5), child: Divider( height: 0.5, indent: 0.0, color: ColorConstants.dividerBar, )), ); } }