项目中需要实现一个标签:
后两个蓝色标签用一个text,加圆角,border就可以实现。但是第一个标签,涉及背景颜色的透明度、圆角,且没有border,用一个text实现不了,只能用一个view去包裹一下。
let labelViewStyle = { backgroundColor: "rgba(255,128,115,0.1)", borderRadius: 6}
let labelTextStyle = { color: '#FF8073' }
this._renderLabel('星巴克可用', labelViewStyle, labelTextStyle, 0)
_renderLabel = (labelText, labelViewStyle, labelTextStyle, index) => {
return (
labelText ? <View style={[styles.singleLabelView, labelViewStyle]} key={index}>
<Text style={[styles.label, labelTextStyle]} allowFontScaling={false} numberOfLines={1}>{labelText}</Text>
</View> : null
);
}
const styles = StyleSheet.create({
singleLabelView: {
maxWidth: (width - 72 - 42 - 24 - 12 - 3 * 6) / 3,
height: 16,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
paddingHorizontal: 9,
},
label: {
fontSize: 9,
textAlign: 'center',
textAlignVertical: 'center',
letterSpacing: 0.45,
fontWeight: 'bold',
},
});
在涉及背景颜色透明度除了"rgba(255,128,115,0.1)" 这样的写法,还可以用八位的16进制写法。https://www.cnblogs.com/oltra/p/5841969.html