0

我已经从 Flatlist 切换到 RecyclerListView,它的性能非常好。但是,我对这个组件也有 2 个问题:

  1. 键盘覆盖输入

下面的代码是 RecyclerListView 的声明方式

<RecyclerListView
   style={{ flex: 1, paddingTop: 10 }}
   rowRenderer={rowRenderer}
   dataProvider={dataProvider}
   layoutProvider={layoutProvider}
   onEndReached={parent.onEndReached}
   onEndReachedThreshold={2800}
   showsVerticalScrollIndicator={false}
   renderFooter={renderFooter}
   externalScrollView={ExtendedScrollView}
   refreshControl={
      <RefreshControl
          refreshing={parent.state.refreshing}
          onRefresh={parent.onRefresh}
          tintColor={loadingColor}
      />
   }
/>

我尝试通过添加带有 KeyboardAwareScrollView 类扩展的 externalScrollView 道具来解决此问题

export default class ExtendedScrollView extends KeyboardAwareScrollView {
scrollTo(...args) {
    if (this._scrollViewRef) {
        this._scrollViewRef.scrollTo(...args);
    }
}

render() {
    return (
        <KeyboardAwareScrollView {...this.props}
            innerRef={scrollView => { this._scrollViewRef = scrollView; }}
            extraScrollHeight={110}
        />
    )
}

但这会导致列表向下滚动 2 次。它与 Flatlist 不同。

  1. 在渲染列表项之前显示页脚

以下是这些问题的样子:https ://media.giphy.com/media/XljQNVHSqs9sxjK0Jm/giphy.gif

4

0 回答 0