Flutter抽屉打开方向不一致,如何实现统一右侧弹出?
解决Flutter中两个页面抽屉均从右侧弹出的问题
要让两个页面的抽屉都从右侧弹出,只需要统一使用Flutter中对应右侧抽屉的配置组合,修改以下两处即可:
1. 修改第二个页面的Scaffold配置
将第二个页面Scaffold的drawer属性替换为endDrawer——这是Flutter专门用于定义右侧抽屉的属性:
return Scaffold( appBar: PaginationAppBar(), body: ...., endDrawer: const AppDrawer(), // 替换drawer为endDrawer );
2. 修改自定义AppBar的触发方法
将PaginationAppBar中打开抽屉的方法从openDrawer()替换为openEndDrawer()——这个方法专门用于触发右侧的endDrawer:
class PaginationAppBar extends StatelessWidget implements PreferredSizeWidget { ... Widget build(BuildContext context) { return AppBar( automaticallyImplyLeading: false, ... IconButton( icon: const Icon(Icons.menu), onPressed: () => Scaffold.of(context).openEndDrawer(), // 替换openDrawer为openEndDrawer ), ... } //build end } //PaginationAppBar class end
原理说明
Flutter的Scaffold组件中存在两组抽屉配置:
drawer+openDrawer()对应左侧弹出的抽屉endDrawer+openEndDrawer()对应右侧弹出的抽屉
两个页面统一使用右侧抽屉的配置组合,就能实现抽屉均从右侧弹出的效果。
内容的提问来源于stack exchange,提问作者rozerro
相关产品推荐
相关产品推荐

