【发布时间】:2022-01-06 11:27:49
【问题描述】:
我想展示一个这样的模态表
BottomsNavigationBar 上方像这样。我试过this:但是我的整个bottomNavigationBar菜单变得无法点击。
我的代码是:
Widget build(BuildContext context) {
final theme = Theme.of(context);
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
return WillPopScope(
onWillPop: () => _willPopCallback(context),
child: Scaffold(
key: _scaffoldKey,...
bottomNavigationBar: BottomNavigationBar(
onTap: (v) {
_scaffoldKey.currentState!.showBottomSheet<Null>(
(BuildContext context){
return GridView.count....
}
}).....
那么这是我的原始代码:
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
return WillPopScope(
onWillPop: () => _willPopCallback(context),
child: Scaffold(
body: PageView(
controller: _controller,
physics:const NeverScrollableScrollPhysics(),
onPageChanged: (v) => setState(() => _selectedIndex = v),
children: BottomNavigationList.pageList(context),
),
bottomNavigationBar: BottomNavigationBar(
onTap: (v) {
setState(() {
if (v == 3) {
showModalBottomSheet(
...
builder: (BuildContext context){
return GridView.count...
但是它会在底部导航栏之上。像这样:
有什么方法可以像在第一张图片或 FAB 中那样将它夹在 BottomNavigationBar 的顶部
更新:我已经尝试了建议的实现并得到了这个:
也许让我换个说法:所以第一张图片有 3 行,最底部的一行是底部导航栏。当您在bottomNav 的selectedIndex 上单击它时,其他两行必须显示,而不会遮挡bottomNav。 @Yeasin,在您的解决方案中,紫色行必须在按下汉堡菜单时显示,并在再次按下时隐藏,这就是我使用 showModalBottomSheet 并尝试 showBottomSheet 的原因
【问题讨论】:
-
你想同时显示bottomnavBar和bottomSheet?
-
是的,就像第一张图片一样,底行是底部导航栏
-
谢谢你,但我已经尝试过了,我想要 OP 屏幕 2,但如果我在我的代码中实现它,整个底部导航变得不可点击......
标签: flutter mobile flutter-layout