react-native - ScrollView 高度适应内容
问题描述
我似乎无法管理这个简单的布局,而且我为 ScrollView 找到的所有技巧都不符合我的情况。我的内容有一个页眉和一个页脚,应该“坚持”它。但是当我的内容变得太大时,页眉自然会卡在屏幕顶部,页脚在屏幕底部,中间部分被应该可以滚动的内容占据。这是布局的代码,我加入了一些屏幕。
- 红色:屏幕
- 蓝色:内容标题
- 绿色:内容(滚动视图)
- 黄色:内容页脚
<View style={styles.screen}>
<View style={styles.contentHeader}>
{contentHeader}
</View>
<ScrollView style={styles.content}>
{content}
</ScrollView>
<View style={styles.contentFooter}>
{contentFooter}
</View>
</View>
我的问题是 ScrollView 应该只取其内容所需的高度,但它没有。有什么建议么 ?
解决方案
您可以使用FlatList
和使用它ListFoooterComponent
来ListHeaderComponent
渲染您的页眉和页脚,您也可以使用它来渲染它们,ScrollView
但建议使用它来FlatList
获得更高的性能和支持。
看看这个FlatList
https://reactnative.dev/docs/flatlist
否则,您可以使用stickyHeaderIndices
prop 来渲染页眉ScollView
并将页脚放置在具有这些样式的 ScrollView 之外。
这将起作用
<View style={styles.screen}>
<ScrollView style={styles.content} stickyHeaderIndices={[0]}>
<View style={styles.contentHeader}>
{contentHeader}
</View>
{content}
</ScrollView>
<View style={[styles.contentFooter, {position: 'absolute, bottom: 0}]}>
{contentFooter}
</View>
</View>
推荐阅读
- r - 在闪亮的功能组中创建一个新变量
- javascript - 如何使用 regex ?: 运算符并在我的情况下获得正确的组?
- colors - 如何在 Firemonkey 中以多色显示文本
- elasticsearch - 跨文档的 kibana 关键字出现
- javascript - 如何在 PUG 中使用数据块渲染脚本标签
- c# - 我应该将私有方法提取到单元测试类吗?
- python - 根据 Python 中其他列的条件创建新列
- php - 删除 cookie 后,PHP 回显的导航栏项目不会出现
- php - 如何在 PHP 中动态创建网格?
- tsql - Lock\Block 使用 SPID -2 锁定表