Как сделать так, чтобы нижний модальный лист всплывал из нижней панели навигации
Я относительно новичок в флаттере, и мне было интересно, как сделать так, чтобы нижний модальный лист отображался на панели навигации. В настоящее время я использую [persistent_bottom_Nav_Bar] (https://pub.dev/packages/persistent_bottom_nav_bar) из pub.dev. Мне нужно, чтобы средняя кнопка открывала модальный лист, как на скриншоте ниже. NavBar делает то, что мне нужно, кроме значка средней кнопки. 1 Вот мой код того, что я делаю
PersistentTabController _controller = PersistentTabController(initialIndex: 0);
class MyNavBar extends StatelessWidget {
const MyNavBar({Key? key}) : super(key: key);
Widget build(BuildContext context) {
return PersistentTabView(
context,
controller: _controller,
screens: _buildScreens(),
items: _navBarsItems(),
confineInSafeArea: true,
backgroundColor: Colors.transparent,
handleAndroidBackButtonPress: true,
resizeToAvoidBottomInset: true,
stateManagement: true,
hideNavigationBarWhenKeyboardShows: true,
decoration: NavBarDecoration(
borderRadius: BorderRadius.circular(10.0),
colorBehindNavBar: Colors.transparent,
),
popAllScreensOnTapOfSelectedTab: true,
popActionScreens: PopActionScreensType.all,
itemAnimationProperties: ItemAnimationProperties(
duration: Duration(milliseconds: 200),
curve: Curves.ease,
),
screenTransitionAnimation: ScreenTransitionAnimation(
animateTabTransition: true,
curve: Curves.ease,
duration: Duration(milliseconds: 200),
),
navBarStyle: NavBarStyle.style6,
);
}
}
List<Widget> _buildScreens() {
return [
Container(
child: Text("Page one"),
),
Container(child: Text("Page one")), //place holder
Container(child: Text('Modal Sheet')),/// <====== NEED THIS TO MAKE A bottom MODAL SHEET POP UP WHEN SELECTED ON THE NAV BAR
Container(child: Text("Page 3")), //place holder text
Container(child: Text("Page 4")) //place holder text
];
}
List<PersistentBottomNavBarItem> _navBarsItems() {
return [
PersistentBottomNavBarItem(
icon: Icon(CupertinoIcons.home),
title: ("First"),
activeColorPrimary: CupertinoColors.activeBlue,
inactiveColorPrimary: CupertinoColors.systemGrey,
),
PersistentBottomNavBarItem(
icon: Icon(CupertinoIcons.settings),
title: ("Second"),
activeColorPrimary: CupertinoColors.activeBlue,
inactiveColorPrimary: CupertinoColors.systemGrey,
),
PersistentBottomNavBarItem(
icon: Icon(CupertinoIcons.car_detailed),
title: ("Add"),
activeColorPrimary: CupertinoColors.activeBlue,
inactiveColorPrimary: CupertinoColors.systemGrey,
),
PersistentBottomNavBarItem(
icon: Icon(CupertinoIcons.bell),
title: ("Second"),
activeColorPrimary: CupertinoColors.activeBlue,
inactiveColorPrimary: CupertinoColors.systemGrey,
),
PersistentBottomNavBarItem(
icon: Icon(CupertinoIcons.circle_grid_hex_fill),
title: ("Last"),
activeColorPrimary: CupertinoColors.activeBlue,
inactiveColorPrimary: CupertinoColors.systemGrey,
),
];
}`