starwork_flutter/lib/common/widgets/custome_app_bar_wdiget.dart
2025-09-12 15:25:36 +08:00

53 lines
1.5 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class CustomAppBarWidget extends StatelessWidget implements PreferredSizeWidget {
final String title;
final List<Widget>? actions;
final Widget? leading;
final bool centerTitle;
final Color? backgroundColor;
final double? elevation;
const CustomAppBarWidget({
super.key,
required this.title,
this.actions,
this.leading,
this.centerTitle = true,
this.backgroundColor = Colors.white,
this.elevation,
});
@override
Widget build(BuildContext context) {
// 判断是否需要显示返回按钮
bool showBackButton = ModalRoute.of(context)?.canPop ?? false;
return AppBar(
title: Text(
title,
style: TextStyle(
fontSize: 18.sp,
fontWeight: FontWeight.w500,
),
),
actions: actions,
// 根据是否有自定义leading来决定使用什么
leading: leading ??
(showBackButton
? IconButton(
icon: const Icon(Icons.arrow_back_ios_new_rounded),
onPressed: () => Navigator.of(context).pop(),
)
: null),
// 当有leading时标题默认左对齐否则按centerTitle参数决定
centerTitle: false,
backgroundColor: backgroundColor,
elevation: elevation,
);
}
@override
Size get preferredSize => const Size.fromHeight(kToolbarHeight);
}