我需要知道它是否能够使用react-native实现我想要的行为。
我正在尝试找到一种方法来导航到从一个静态定义的屏幕创建多次的特定屏幕。首先通过以下方式创建多个屏幕:
this.props.navigation.push('tabScreen') // option 1
this.props.navigation.navigate({routeName: 'tabScreen', params: {}, key: uuid()}) // option 2
我能够使用stackNavigator成功创建多个相同的屏幕,但是问题是,我需要能够导航或'跳转(不只是返回上一个屏幕)'到创建的任何屏幕,而不必卸载该屏幕。创建的屏幕。
例如,如果我有屏幕1,屏幕2,屏幕3,屏幕4,屏幕5我应该可以跳转,或导航
Screen 1 -> Screen 4
Screen 4 -> Screen 2
Screen 2 -> Screen 5
以此类推,而无需在导航时卸下屏幕(移动浏览器中选项卡功能的确切行为)。
React-naivgation的堆栈导航器使用堆栈,因此据我所知,它导航到屏幕之前会弹出所有屏幕,因此会卸载该屏幕。
这样的行为在本机的导航库中是否可以实现?
如果没有,我应该在哪里或如何考虑解决问题?
谢谢
您可以使用ViewPager来达到以下目的:放置参考ViewPager for example
对于选项卡,您必须创建选项卡的数组,并在此基础上,可以使用迭代或任何其他机制将选项卡作为视图页面管理器中的视图进行管理。
要动态添加视图,可以将新的选项卡添加到数组,并可以重新呈现view-pager组件。
对于导航,您可以使用不同的事件处理API方法,例如onPageScrollStateChanged, onPageScroll
来管理选项卡切换和其他内容。
我希望这能回答您的问题。