closeMainDrawer method
关闭主页面的抽屉(主路由栈可用)
用于主路由栈控制 Scaffold 的抽屉
参数:
isEndDrawer: true 表示右侧抽屉,false 表示左侧抽屉
示例:
final router = RouterProxy.getInstance();
router.closeMainDrawer(isEndDrawer: true); // 关闭右侧抽屉
router.closeMainDrawer(isEndDrawer: false); // 关闭左侧抽屉
Implementation
void closeMainDrawer({bool isEndDrawer = false}) {
if (!isMainStack) {
debugPrint(
'Warning: closeMainDrawer() should only be called on main stack');
return;
}
final state = _mainScaffoldState;
if (state == null) {
debugPrint(
'Warning: Main ScaffoldState not available. Ensure the current page contains a Scaffold, or call bindMainScaffoldKey() explicitly.');
return;
}
try {
if (isEndDrawer) {
if (state.isEndDrawerOpen) {
state.closeEndDrawer();
}
} else {
if (state.isDrawerOpen) {
state.closeDrawer();
}
}
} catch (e) {
debugPrint('Error closing main drawer: $e');
}
}