在 React Native 中,如何定位和滑动大于屏幕视图的元素?

In React Native, how do I position and slide an element thats bigger than screen view?

在下图中,每个面板都是屏幕的大小,并且它们作为一个大元素可以快速左右滑动。如果幻灯片过渡有问题,时间 = 0 没问题,所以它是瞬时的。

每个面板的内容在屏幕外保持挂载状态,因为子项中有一个 webview,我想防止重新加载网页(如果重新挂载面板会发生这种情况)。 我该怎么做呢? (编辑:没有插件或现成的导航系统)

您可以将选项卡导航器与 swipedEnabled: true 一起使用,这两个组件也将保持挂载状态。参考 React-Navigation

一个抽象的例子是这样的

const MyApp = TabNavigator({
  Home: {
    screen: MyHomeScreen,
  },
  Notifications: {
    screen: MyNotificationsScreen,
  },
}, {
  tabBarOptions: {
    activeTintColor: '#e91e63',
  },
});

主页和通知将成为您的组成部分

这是使用 CSS 和 HTML 的方法,您可以将其转换为与 React Native 一起使用。

<html>
<header>
  <style>
  #body{
    display: flex;
    justify-content: center;
    width: 200vw;
  }
  #inner{
    width: 100%;
    height: 100%;
    display: flex;
    background: #de9999;
    align-items: center;
  }
  #body #body-left{
    flex: 1 0 50%;
    height: 100%;
    background: green;
  }
  #body #body-right{
    flex: 1 0 50%;
    height: 100%;
    background: lightgrey;
  }
</style>
</header>
<body>
  <div id="body">
    <div id="inner">
      <div id="body-left"></div>
      <div id="body-right"></div>
    </div>
  </div>
</body>
</html>