我已经按照这篇文章-React Native flex-box align icon and text做了一个按钮,标题如下:
<View style={styles.sectionHeaderContainer}>
<Text style={styles.heading}>Work</Text>
<TouchableOpacity
style = {{width: 40, flex: 1, flexDirection: 'row', justifyContent: 'center', alignItems: 'center'}}
onPress={() => {
this.setState(previousState => {
Alert.alert('You tapped the button!')
});
}}>
<Image source={addIcon}/>
<Text style={styles.tertirayTitleDark}>Add Work</Text>
</TouchableOpacity>
</View>
样式表如下所示:
sectionHeaderContainer: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'flex-end',
paddingHorizontal: "6%",
paddingTop: "12%",
},
heading: {
fontSize: TITLE,
fontWeight: 'bold',
color: THEME_COLOR,
backgroundColor:'transparent',
},
tertirayTitleDark: {
fontSize: CONTENT_LARGE,
fontWeight: 'bold',
color: COLOR_DARK_PRIMARY,
},
但是,该按钮占用了标题留下的所有可用水平空间:
我已经尝试了许多不同的设置,但仍然不能找出我做错了什么。
2条答案
按热度按时间vaqhlq811#
只要删除
flex:1
。当你把flex:1
添加到touchableOpacity的样式中时,你就是在告诉它占用所有可用的空间,就像提供的图片一样。希望这能有所帮助!tf7tbtn22#
这个公认的答案对我来说不起作用,相反,我必须用一个给定宽度的
View
来 Package 整个TouchableOpacity
,即: