[英]React Native ScrollView is cut off from the bottom on iOS
在我的情况下,问题不是flex: 1
或flexGrow: 1
,而是在ScrollView
样式上使用padding
。
所以不要这样做:
<ScrollView style={{padding: 40}}>
{/* MY CONTENT HERE */}
</ScrollView>
我这样做了:
<ScrollView>
<View style={{padding: 40}}>
{/* MY CONTENT HERE */}
</View>
</ScrollView>
问题得到了解决。
因此,如果您想为ScrollView
添加填充,请在其中创建一个View
并对其应用填充。
flex:1
到外部父级
<View> //Parent
<Header/>
<ScrollView/>
</View>
如果ScrollView
被切断,分配父<View>
flex:1
<View style={{flex:1}}> //Parent
<Header/>
<ScrollView/>
</View>
问题:您的导航栏将您的ScrollView
向下推。
解决方案:让ScrollView
周围的包装器填满整个屏幕。 第 8 行中的这一变化具有魔力: <View style={StyleSheet.absoluteFill}>
我还对您的代码进行了最低限度的更改,以使其对没有您的形象的人有用,并更好地了解正在发生的事情,我以不同的方式命名了这些值。 这是工作版本: https ://repl.it/Iqcx/2
简化代码:
import { View, ScrollView, StyleSheet } from "react-native";
<View style={StyleSheet.absoluteFill}>
<ScrollView />
</View>
将flexGrow:1
添加到<ScrollView>
组件contentContainerStyle
道具对我有用(将flex:1
添加到外部<View>
或<ScrollView>
对我不起作用)。
<View>
<ScrollView contentContainerStyle={{flexGrow:1}}>
(...content here...)
</ScrollView>
</View>
在我对被切断元素的View
中,我的值height = 100%
删除它为我完成了这项工作。
将 marginBottom 添加到scrollview的样式为我解决了这个问题。 我们需要增加marginBottom值,直到我们可以滚动查看全部内容。
<ScrollView style={{ marginBottom: 60}}> //scrollview content </ScrollView>
就我而言,问题是我的主要内容设置为position: absolute
所以没有计算出正确的高度。
只需使用contentContainerStyle
我的ScrollView
中的每个项目的aspectRatio
设置为 1。当我删除它时,我能够滚动到ScrollView
的底部。
在我的ScrollView
组件中,我可以滚动到底部并查看所有内容,但滚动时底部总是有一个覆盖。 我通过将ScrollView
包装在View
组件中解决了这个问题,我没有再看到覆盖。 希望这对某人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.