Image.resizeMode.contain 在元素上方创建空白空间
Posted
技术标签:
【中文标题】Image.resizeMode.contain 在元素上方创建空白空间【英文标题】:Image.resizeMode.contain creates empty space above element 【发布时间】:2015-12-23 04:46:43 【问题描述】:我正在 android 上尝试 React Native,但是当使用 Image.resizeMode.contain 制作全屏背景时,React native 会在我的元素上方创建一个空白空间。
代码:
render: function()
return (
<View style=Styles.restaurant_container>
<Image
style=Styles.backdrop
resizeMode=Image.resizeMode.contain
source=require('image!login_background')>
<View style=Styles.backdropView>
<Text style=Styles.headline>Headline</Text>
</View>
</Image>
</View>
);
风格:
var Styles = StyleSheet.create(
restaurant_container:
flex: 1,
alignItems: 'center',
backgroundColor: '#000000',
,
backdrop:
flex: 1,
paddingTop: 60
,
backdropView:
flex: 1,
backgroundColor: 'rgba(0,0,0,0)',
alignItems: 'center'
,
headline:
fontSize: 20,
textAlign: 'center',
backgroundColor: 'rgba(240,240,240,0.7)',
color: 'Black'
)
结果:
删除内部的视图似乎并不能解决这个问题。 当删除 resizeMode.contain 规则和/或使用覆盖或拉伸背景中的图片被缩放到实际大小时,它会忽略大小。
【问题讨论】:
【参考方案1】:主要问题是 resizeMode = "contain" 不会降低图像的高度并将其居中在其原始大小内。 一种解决方案是设置图像的高度和宽度并移除resizeMode。 所以你的代码将是:
render: function()
return (
<View style=Styles.restaurant_container>
<Image
style=Styles.backdrop
source=require('image!login_background')>
<View style=Styles.backdropView>
<Text style=Styles.headline>Headline</Text>
</View>
</Image>
</View>
);
你的风格会是这样的:
var Styles = StyleSheet.create(
backdrop:
flex: 1,
paddingTop: 60,
width: null,
height: 400
,
)
您设置所需的高度。
【讨论】:
以上是关于Image.resizeMode.contain 在元素上方创建空白空间的主要内容,如果未能解决你的问题,请参考以下文章