为特定的嵌套屏幕禁用抽屉
Disable drawer for a specific nested screen
我有一个父抽屉导航器,我想在导航器较少的特定屏幕中禁用抽屉。
我尝试将 gestureEnabled
选项放在屏幕上,但它在堆栈屏幕上有其他效果,而不是在抽屉屏幕上。
此外,我尝试在抽屉导航器中使用 getFocusedRouteNameFromRoute
,但它没有给我屏幕的名称,而是其中一个父导航器。
您是否也尝试过禁用滑动?
<Drawer.Screen name="Home"
component={HomeScreen}
options={{
swipeEnabled:false,
gestureEnabled:false
}}
/>
经过研究,我找到了几种通过使用 dangerouslyGetParent
获取父导航器来实现此目的的方法,我不喜欢这种方法,因为我需要的导航器大约在三层以上。
我的导航器层次结构如下所示 - Drawer => Stack => Tab => Multiple Stacks,
我们保留当前选项卡,所以我最终做的是根据当前选项卡活动在抽屉屏幕上动态设置 swipeEnabled
选项。
我有一个父抽屉导航器,我想在导航器较少的特定屏幕中禁用抽屉。
我尝试将 gestureEnabled
选项放在屏幕上,但它在堆栈屏幕上有其他效果,而不是在抽屉屏幕上。
此外,我尝试在抽屉导航器中使用 getFocusedRouteNameFromRoute
,但它没有给我屏幕的名称,而是其中一个父导航器。
您是否也尝试过禁用滑动?
<Drawer.Screen name="Home"
component={HomeScreen}
options={{
swipeEnabled:false,
gestureEnabled:false
}}
/>
经过研究,我找到了几种通过使用 dangerouslyGetParent
获取父导航器来实现此目的的方法,我不喜欢这种方法,因为我需要的导航器大约在三层以上。
我的导航器层次结构如下所示 - Drawer => Stack => Tab => Multiple Stacks,
我们保留当前选项卡,所以我最终做的是根据当前选项卡活动在抽屉屏幕上动态设置 swipeEnabled
选项。