Skip to content

Commit afd0033

Browse files
committed
refactor: update floating action button widget build
1 parent 2ae3855 commit afd0033

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

lib/framework/view/bottom_nav_page_group.dart

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,7 @@ class BottomNavPageGroup extends StatefulWidget {
6868

6969
class _BottomNavPageGroupState extends State<BottomNavPageGroup> {
7070
late List<MenuItem> menuItems;
71-
Widget? fab;
72-
FloatingAlignment floatingAlignment = FloatingAlignment.none;
71+
FloatingAlignment floatingAlignment = FloatingAlignment.center;
7372
int? floatingMargin;
7473
MenuItem? fabMenuItem;
7574

@@ -88,9 +87,13 @@ class _BottomNavPageGroupState extends State<BottomNavPageGroup> {
8887
if (fabItems.isNotEmpty) {
8988
fabMenuItem = fabItems.first;
9089
}
90+
if (fabMenuItem != null && fabMenuItem?.floatingAlignment != null) {
91+
floatingAlignment =
92+
FloatingAlignment.values.byName(fabMenuItem!.floatingAlignment);
93+
}
9194
}
9295

93-
void _floatingButton() {
96+
Widget? _buildFloatingButton() {
9497
if (fabMenuItem != null) {
9598
floatingMargin = fabMenuItem!.floatingMargin;
9699
final dynamic customIcon = _buildCustomIcon(fabMenuItem!);
@@ -102,7 +105,7 @@ class _BottomNavPageGroupState extends State<BottomNavPageGroup> {
102105
Utils.getColor(widget.menu.styles?['floatingBackgroundColor']) ??
103106
Theme.of(context).colorScheme.secondary;
104107

105-
fab = Theme(
108+
return Theme(
106109
data: ThemeData(useMaterial3: false),
107110
child: customIcon ??
108111
FloatingActionButton(
@@ -115,11 +118,8 @@ class _BottomNavPageGroupState extends State<BottomNavPageGroup> {
115118
onPressed: () => _floatingButtonTapped(fabMenuItem!),
116119
),
117120
);
118-
if (fab != null) {
119-
floatingAlignment =
120-
FloatingAlignment.values.byName(fabMenuItem!.floatingAlignment);
121-
}
122121
}
122+
return null;
123123
}
124124

125125
void _floatingButtonTapped(MenuItem fabMenuItem) {
@@ -132,16 +132,13 @@ class _BottomNavPageGroupState extends State<BottomNavPageGroup> {
132132

133133
@override
134134
Widget build(BuildContext context) {
135-
_floatingButton();
136-
137135
return Scaffold(
138136
resizeToAvoidBottomInset: false,
139137
bottomNavigationBar: _buildBottomNavBar(),
140138
floatingActionButtonLocation: floatingAlignment == FloatingAlignment.none
141139
? null
142140
: floatingAlignment.location,
143-
floatingActionButton:
144-
floatingAlignment == FloatingAlignment.none ? null : fab,
141+
floatingActionButton: _buildFloatingButton(),
145142
body: PageGroupWidget(
146143
scopeManager: widget.scopeManager,
147144
child: widget.child,

0 commit comments

Comments
 (0)