带有动态 numColumns 的 flatlist

Sea*_*Say 9 react-native react-native-listview react-native-flatlist

我 1 个月前开始使用 react native。现在我开始构建一个简单的从互联网获取数据并显示如下图所示的布局。

将这些结果放入网格的最佳方法是什么?





在此处输入图片说明

这是我的简单代码

 render() {
  <FlatList
      data={newsData}
      renderItem={
        ({item,index}) =>
        index === 0 ? this._renderHighlightedVideo(item.node,index) :
        index === 5 ? this._renderAdvertisment() :
        index > 10 && (index+2) % 7 === 0 ? this._renderAdvertisment() :  this._renderGridVideo(item.node, index)
      }
      keyExtractor={(item, index) => index}
      />
 }




_renderHighlightedVideo(news, index) { }
_renderAdvertisment(){ }
_renderGridVideo(item.node, index){ }
Run Code Online (Sandbox Code Playgroud)

Raj*_*pta 12

  • 使用 columnWrapperStyle={{ flexWrap: 'wrap'}} inFlatlist 来实现这一点,确保 numColumns 设置为大于 1。

  <FlatList
              columnWrapperStyle={{ flexWrap: 'wrap', flex: 1, marginTop: 5 }}
              data={this.state.tags}
              horizontal={false}
              renderItem={({ item, index }) => <Tags item={item} index={index}
                handleSelectedTags={this.handleSelectedTags}
                selected={this.state.selected[index]} />
              }
              numColumns={3}
              keyExtractor={(item, index) => index}
            />
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助。