openDrawerStack method

void openDrawerStack()

打开抽屉(仅抽屉路由栈可用)

手动打开抽屉,通常在自动打开被禁用时使用

示例:

final drawerRouter = RouterProxy.getDrawerInstance(stackId: 'main-drawer');
drawerRouter.openDrawerStack();

Implementation

void openDrawerStack() {
  if (!isDrawerStack) {
    debugPrint('Warning: openDrawerStack() should only be called on drawer stack');
    return;
  }

  if (_drawerContext == null) {
    debugPrint('Warning: Drawer context not bound. Call bindDrawerContext() first.');
    return;
  }

  try {
    if (_drawerConfig!.isEndDrawer) {
      if (!Scaffold.of(_drawerContext!).isEndDrawerOpen) {
        Scaffold.of(_drawerContext!).openEndDrawer();
      }
    } else {
      if (!Scaffold.of(_drawerContext!).isDrawerOpen) {
        Scaffold.of(_drawerContext!).openDrawer();
      }
    }
  } catch (e) {
    debugPrint('Error opening drawer: $e');
  }
}