Flutter Drawer 在点击之外自动关闭
Flutter Drawer gets closed automatically outside of it's click
我想防止我的末端抽屉在点击它外面后关闭,我用这条线打开我的 endDrawer scaffoldKey.currentState.openEndDrawer
所以当我不小心点击这个抽屉外面你看到灰色 drawerScrimColor
它会根据其自然行为自动关闭,我不想这样做,我看到的只是 endDrawerEnableOpenDragGesture: false
但这可以防止我的抽屉不能用 DragGesture
打开,但我的问题是不同的我做不希望我的抽屉在点击它外面时自动关闭请帮助我,你的帮助将不胜感激提前非常感谢
我在我的应用程序中遇到了完全相同的情况,我想在单击外部半透明稀松布时禁用抽屉关闭。
这是我用过的解决方案(还在用):
return Scaffold(
...,
drawer: Container(
color: Colors.transparent,
child:
Row(children: const [SizedBox(width: 304, child: DrawerMenu())])),
...
);
Container
的颜色必须设置为某种颜色,否则将不起作用。它设置为透明,因为脚手架的默认半透明 scrimColor
就足够了。
宽度设置为 304
,因为这是 Drawer
的默认宽度,如前所述 here。
这里使用的Row
不是over-engineering,它是用来防止子控件扩展到屏幕宽度的,这是Scaffold's Drawer的默认行为。
我使用这个而不是其他基于覆盖手势的解决方案,因为它很简单并且不会影响滚动 in/Dragging 抽屉。
我想防止我的末端抽屉在点击它外面后关闭,我用这条线打开我的 endDrawer scaffoldKey.currentState.openEndDrawer
所以当我不小心点击这个抽屉外面你看到灰色 drawerScrimColor
它会根据其自然行为自动关闭,我不想这样做,我看到的只是 endDrawerEnableOpenDragGesture: false
但这可以防止我的抽屉不能用 DragGesture
打开,但我的问题是不同的我做不希望我的抽屉在点击它外面时自动关闭请帮助我,你的帮助将不胜感激提前非常感谢
我在我的应用程序中遇到了完全相同的情况,我想在单击外部半透明稀松布时禁用抽屉关闭。
这是我用过的解决方案(还在用):
return Scaffold(
...,
drawer: Container(
color: Colors.transparent,
child:
Row(children: const [SizedBox(width: 304, child: DrawerMenu())])),
...
);
Container
的颜色必须设置为某种颜色,否则将不起作用。它设置为透明,因为脚手架的默认半透明 scrimColor
就足够了。
宽度设置为 304
,因为这是 Drawer
的默认宽度,如前所述 here。
这里使用的Row
不是over-engineering,它是用来防止子控件扩展到屏幕宽度的,这是Scaffold's Drawer的默认行为。
我使用这个而不是其他基于覆盖手势的解决方案,因为它很简单并且不会影响滚动 in/Dragging 抽屉。