我想得到标题与图片和标题在一行这样:Desired result
使用此代码:
<View style={{ flex: 1, backgroundColor:'#ccf6c0', flexDirection:'column',}}>
{/* ======================= HEADER ===================================*/}
<View style={{flex: 0, flexDirection: 'row', backgroundColor:'#d5d5f7'}}>
<Image
source={require('./images/logo.png')}
style={{resizeMode: 'contain', flex: 1}}
/>
<View style={{flex: 1, justifyContent: 'center', backgroundColor:'#f7d5d5'}}>
<Text style={{fontSize: 17, fontWeight:'bold', marginLeft: 7}}>
Title
</Text>
</View>
</View>
</View>
但是我得到了这个输出:Wrong result-图像上方和下方有不必要的空间。
我错过了什么才能得到想要的结果?
我的猜测是:图像的原始大小为360 x180(因此默认情况下,它应该是768模拟器屏幕宽度的一半),但Android接受它作为mdpi图像,并将其放大到xhdpi(两个方向都是x2),然后使用此放大图像计算容器高度。“contain”适用(在新的双层高度容器内)。有什么建议吗?
3条答案
按热度按时间huus2vyu1#
这可能看起来像一个破碎的API,但这是我如何解决我的情况:
宽度和高度
null
看起来很奇怪,但这样可以摆脱静态大小,并调整视图的大小。but5z9lq2#
在这种情况下,唯一有效的解决方案是直接使用尺寸,以便在调整图像大小之前计算和硬设置图像帧的大小:
zbwhf8kr3#
您可以从
Image
组件中删除样式,并在其周围添加一个视图,然后使用该视图和图像组件中的resizeMode='contain'
prop 来决定图像的大小。例如: