首页 > 解决方案 > ScrollView中的WebView在一直向上滑动React Native Android时调用refreshControl

问题描述

我在 React Native 应用程序的 ScrollView 中有一个 WebView。ScrollView 具有 refreshControl 属性,因此当我到达应用程序顶部时可以刷新 WebView。

这就是问题所在:我滚动 WebView 没有问题,但是每当我向上滑动到页面顶部时,无论我是在页面的末尾、中间还是开头,refreshControl 都是总是触发。

当scrollY:0且scrollY总是为0时触发RefreshControl,因为滚动的不是ScrollView而是WebView,所以ScrollView总是在scrollY:0。

我已经在 WebView 和 ScrollView 上尝试了 scrollEnabled 道具,但没有一个起作用。

这是代码现在的样子:

<View style={{flex: 1}}>
    <ScrollView
      contentContainerStyle={{flex: 1}}
      refreshControl={
        <RefreshControl
          refreshing={this.state.refreshing}
          onRefresh={this._onRefresh.bind(this)}
        />
      }
    >
      <WebView
        ref="webview"
        source={{uri: initialUrl}}
      />
    </ScrollView>
</View>

我已经删除了所有道具以尝试重新开始,但我总是遇到同样的问题。在 iOS 上它工作正常,没有这个问题。

是的,我在这个母亲视图中确实有其他东西。

标签: androidreact-nativewebviewscrollviewpull-to-refresh

解决方案


奇怪的是,我从contentContainerStyle中删除了样式并且效果很好。只是想我会删除可能阻碍该功能的额外内容。也许这是一个错误,但现在尽量避免在其中使用 Flexbox 设置。


推荐阅读