React Native - 禁止在一个方向上滚动

8
有没有一种方法可以在React Native(iOS)中禁用一个ScrollView? 我的意思是我只需要下拉刷新,但我还可以向上拉。我想禁用向上拉。
  <ScrollView

                        refreshControl={
                            <RefreshControl
                                refreshing={this.state.isRefreshing}
                                onRefresh={this._onRefresh}></RefreshControl>}
                        style={styles.container} contentContainerStyle={{flex: 1}}>
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
0

我不知道scrollview中是否有任何属性可以这样做。

我能想到的一种方法是创建一个状态来跟踪你是否在向上滚动,然后通过做类似于这样的计算来计算你正在向哪个方向滚动:

const [scrollDisabled, setScrollDisabled] = useState(false);

let viewPosition = 0;

const disableDownwardScroll = event => {
    const currentPosition = event.nativeEvent.contentOffset.y;
    const isScrollingDown =
            currentPosition > 0 && 
            currentPosition > viewPosition
                ? true
                : false;
    setScrollDisabled(isScrollingDown);
}


return(
    <ScrollView 
        onScroll={disableDownwardScroll} 
        disableScrollViewPanResponder={scrollDisabled}>

        <Content />

    </ScrollView>
);

我自己以前从未使用过"disableScrollViewPanResponder"属性,但我认为它大致是你需要的东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,