如果列表没有超出页面,则在底部呈现 FlatList 页脚

Bil*_*l L 5 reactjs react-native

我正在尝试在我们的FlatList. 我们想要的是,如果FlatList超出页面,页脚应该表现正常——即在用户滚动到足以显示它之前离开屏幕。

但是,如果只有几个项目,并且FlatList没有超出页面底部,我希望我的页脚显示在底部,而不是在列表之后。我试图画一些 ASCII 艺术来更好地展示我的意思:

错误的:

---------------
| cell1        |
|--------------|
| cell2        |
|--------------|
| footer       |
|              |
|              |
|              |
----------------
Run Code Online (Sandbox Code Playgroud)

我想要什么:

---------------
| cell1        |
|--------------|
| cell2        |
|--------------|
|              |
|              |
|              |
| footer       |
----------------
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?重要的部分是,如果您需要滚动以查看单元格,页脚不会位于列表上方,但仍会保留在所有单元格之后。

Bil*_*l L 2

如果有人后来发现这个并正在寻找答案,以下是我让它工作的方法:

<ScrollView 
  style={styles.flatListSectionLayout} 
  contentContainerStyle={{ flexGrow: 1 
}}>
  <FlatList
    style={{ flex: 1 }}
    scrollEnabled={false}
    ...
  />
  <Footer />
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

这将强制ScrollView的内容容器增长以填充所有可用空间 ( contentContainerStyle={{ flexGrow: 1 }}),然后强制FlatList占据尽可能多的剩余空间( style 属性flex: 1中的FlatList)。

  • 切勿将 `FlatList` 放入 `ScrollView` 中,因为在这种情况下,`FlatList` 将一次性渲染所有项目,因此渲染速度会很慢并且内存消耗很高。这与使用“.map()”方法渲染项目相同。我在这里解释了如何处理这个问题/sf/ask/3908007281/ -足够的/ (5认同)