我的React-Native应用程序中有这个ImageBackground标签。
const{height,width} = Dimensions.get('window);
const navHeight = ExtraDimensions.get('SOFT_MENU_BAR_HEIGHT');
render(){
return(
<ImageBackground source={Images.bg} style={{width=width+48,height=height}}>
//content
</ImageBackground>
);
}
数字48是默认Android导航栏的高度(其中一个包含BACK按钮)。 navHeight
用于检测设备上导航栏的高度(请参见此处:Alexander Terekhov)。
由于现在有不带导航栏的设备,我想使用ImageBackground样式进行条件样式设置,以在值style={styles.bg1}
时采用navHeight
,在值style={styles.bg2}
时采用navHeight
没有<ImageBackground source={Images.bg} style={navHeight=0 ? styles.bg1 : styles.bg2}>
值。
我可以知道在哪里以及如何实施样式吗?谢谢
我目前做错的方法是
{{1}}
答案 0 :(得分:6)
存在语法错误,为了进行比较,您必须使用==
。
尝试一下
<ImageBackground source={Images.bg} style={ (navHeight==0) ? styles.bg1 : styles.bg2}>
此外,我建议您使用Image
标记,并使用position="absolute"
向其附加一个子组件。因为在borderRadius
标签的情况下,ImageBackground
之类的某些样式道具无法使用。
希望这对您有所帮助!