rup-project/app/lib/widgets/common/custom_app_bar.dart

60 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
final String title;
final Widget? leading;
final List<Widget>? actions;
final VoidCallback? onLeadingPressed;
final bool showBottomBorder;
const CustomAppBar({
super.key,
required this.title,
this.leading,
this.actions,
this.onLeadingPressed,
this.showBottomBorder = true,
});
@override
Widget build(BuildContext context) {
return AppBar(
backgroundColor: Colors.white,
elevation: 0,
scrolledUnderElevation: 0,
centerTitle: true,
title: Text(
title,
style: TextStyle(
fontFamily: 'SCDream',
fontSize: 18.sp,
fontWeight: FontWeight.bold,
color: Colors.black,
),
),
leading:
leading ??
IconButton(
icon: const Icon(Icons.arrow_back_ios, color: Colors.black),
onPressed: onLeadingPressed ?? () => Navigator.pop(context),
),
actions: actions,
bottom: showBottomBorder
? PreferredSize(
preferredSize: Size.fromHeight(1.h),
child: Divider(
color: const Color(0xFFEEEEEE),
thickness: 1.h,
height: 1.h,
),
)
: null,
);
}
@override
Size get preferredSize =>
Size.fromHeight(kToolbarHeight + (showBottomBorder ? 1.h : 0));
}