自适应内容的 ScrollView 高度

ScrollView height adapting to content

我似乎无法管理这个简单的布局,而且我为 ScrollView 找到的所有技巧都不符合我的情况。 我的内容有一个 header 和一个应该 "stick" 的页脚。 但是当我的内容变得太大时,header应该自然地卡在屏幕的顶部,页脚在屏幕的底部,中间部分被应该可以滚动的内容占据。 这是布局的代码,我加入了一些屏幕。

<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 并使用它的 ListFoooterComponentListHeaderComponent 来呈现您的 header 和页脚,您也可以使用 ScrollView 来呈现它们,但是它建议使用 FlatList 以获得更高的性能和支持。

看看这个 FlatList

https://reactnative.dev/docs/flatlist

否则,您可以使用 stickyHeaderIndices 属性在 ScollView 中呈现 header,并使用这些样式将页脚放在 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>