滑动到下一个屏幕(无限)

Swipe to next screen (infinite)

我的应用程序中有一个日历部分,我希望能够在其中向右或向左滑动以转到下一天或前一天。

我知道您可以使用 React Navigation 中的 createMaterialTopTabNavigator 来做类似的事情,但我不确定它是否适用于这种特定情况(我会有无限数量的屏幕并且不会' 无法预定义它们)。

我还考虑过使用 react-native-gesture-handlerSwipeable 组件通过 left/right 滑动导航到 next/previous 日屏幕,但我不确定这是否是easiest/best 解决这个问题的方法。

如您所述,您可以使用 TabsSwipable。还有一些其他选项,例如使用 <ifaram><WebView> 以及使用网络 URL 而不是 RN 组件,但它可能很棘手且难以操作。

作为一个简单的解决方案,您可以使用 carousels 而不是使用 multi screen 定义导航。这很简单。假设您的屏幕是图片库中的图片,您可以滑动 left/right.

许多个库,最好的库之一是:react-native-snap-carousle

看看它的例子:

import Carousel from 'react-native-snap-carousel';
 
export class MyCarousel extends Component {
 
    _renderItem = ({item, index}) => {
        return (
            <View style={styles.slide}>
                <Text style={styles.title}>{ item.title }</Text>
            </View>
        );
    }
 
    render () {
        return (
            <Carousel
              ref={(c) => { this._carousel = c; }}
              data={this.state.entries}
              renderItem={this._renderItem}
              sliderWidth={sliderWidth}
              itemWidth={itemWidth}
            />
        );
    }
}

因此您可以将 screen/page 作为 _renderItem 传递给 Carousel