我试图灵活地包装一些标签,但几乎没有什么工作,我已经尝试了一切,它仍然没有包装React Native可能有包装问题吗?
我的标签输出只包含在视图中,并且具有所有正确的设置。
这是我的代码:
<View
style={{
width: responsiveWidth(18),
height: responsiveHeight(3.5),
borderRadius: 10,
backgroundColor: "#ffe8e8",
alignItems: "center",
justifyContent: "center",
marginLeft: responsiveWidth(8)
}}
>
<Text
style={{
color: "#000",
fontSize: responsiveFontSize(1.5),
fontFamily: "Iransans"
}}
>
8:00 AM
</Text>
</View>;
for (var i = 1; i < times.length / 4; i++) {
//i shomarandeye radif
for (var j = 1; j % 4 == 0; j++) {
//j shomarandeye sheyaaye darune radif
}
}
const isEmptyPhotoTags = _.isEmpty(photoTags);
let renderTags = [];
if (!isEmptyPhotoTags) {
photoTags[0].forEach(function(tag, i) {
renderTags.push(
<View
key={i}
style={{
flex: 1,
flexDirection: "row",
flexWrap: "wrap",
alignItems: "flex-start",
justifyContent: "space-between",
alignContent: "space-between",
paddingLeft: 15
}}
>
<View style={{ height: 52, width: 146, padding: 5 }}>
<TouchableHighlight style={styles.buttonTag}>
<Text style={styles.buttonTagText}>{tag}</Text>
</TouchableHighlight>
</View>
</View>
);
});
}
<View style={styles.tagSection}>
<View
style={{
flex: 1,
flexDirection: "row",
flexWrap: "wrap",
alignItems: "flex-start",
justifyContent: "flex-start"
}}
>
<Icon
name="tag"
size={29}
type={"font-awesome"}
color={"#58595B"}
style={{ paddingLeft: 20, paddingRight: 10 }}
/>
<Text style={styles.tagSectionHeaderText}>Tags</Text>
</View>
<View
style={{
flex: 1,
flexDirection: "row",
flexWrap: "wrap",
alignItems: "flex-start",
justifyContent: "space-between",
alignContent: "space-between"
}}
>
{!isEmptyPhotoTags ? (
<View
style={{
flex: 1,
flexDirection: "row",
flexWrap: "wrap",
alignItems: "flex-start",
alignContent: "space-between",
justifyContent: "space-between"
}}
>
{renderTags}
</View>
) : (
<Text style={styles.tagSectionNoTags}>No Tags</Text>
)}
</View>
</View>;
tagSection: {
flex: 1,
flexDirection: 'column',
backgroundColor:'#F7F8F9',
paddingTop:10,
flexWrap:'wrap',
alignItems: 'flex-start',
justifyContent: 'flex-start'
},
tagSectionHeaderText:{
fontSize: 21,
lineHeight: 22,
color: '#58595b',
fontWeight: '600',
paddingRight:10,
},
tagSectionNoTags:{
fontSize: 18,
lineHeight: 22,
color: '#58595b',
fontWeight: '400',
fontStyle:'italic',
paddingLeft:10,
},
buttonTag: {
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
borderBottomRightRadius: 10,
borderBottomLeftRadius: 10,
backgroundColor: '#6575BE',
flex:1,
justifyContent: 'center',
alignItems: 'center',
},
buttonTagText: {
textAlign: 'center',
fontSize: 20,
lineHeight: 22,
color: '#fff',
fontWeight: '600',
}
更新代码:
const isEmptyPhotoTags = _.isEmpty(photoTags);
let renderTags = [];
if (!isEmptyPhotoTags) {
photoTags[0].forEach(function(tag, i) {
renderTags.push(
<View key={i} style={[styles.wrapTags, { paddingLeft: 15 }]}>
<View style={{ height: 52, width: 146, padding: 5 }}>
<TouchableHighlight style={styles.buttonTag}>
<Text style={styles.buttonTagText}>{tag}</Text>
</TouchableHighlight>
</View>
</View>
);
});
}
<View style={styles.tagSection}>
<View
style={{
flex: 1,
flexDirection: "row",
flexWrap: "wrap",
alignItems: "flex-start",
justifyContent: "flex-start"
}}
>
<Icon
name="tag"
size={29}
type={"font-awesome"}
color={"#58595B"}
style={{ paddingLeft: 20, paddingRight: 10 }}
/>
<Text style={styles.tagSectionHeaderText}>Tags</Text>
</View>
<View style={styles.wrapTags}>
{!isEmptyPhotoTags ? (
<View
style={{
flexDirection: "row",
flexWrap: "wrap",
alignItems: "flex-start",
alignContent: "space-between",
justifyContent: "space-between",
paddingBottom: 10
}}
>
{renderTags}
</View>
) : (
<Text style={styles.tagSectionNoTags}>No Tags</Text>
)}
</View>
</View>;
tagSection: {
//flex: 1,
flexDirection: 'column',
backgroundColor:'#F7F8F9',
paddingTop:10,
flexWrap:'wrap',
alignItems: 'flex-start',
justifyContent: 'flex-start'
},
tagSectionHeaderText:{
fontSize: 21,
lineHeight: 22,
color: '#58595b',
fontWeight: '600',
paddingRight:10,
},
tagSectionNoTags:{
fontSize: 18,
lineHeight: 22,
color: '#58595b',
fontWeight: '400',
fontStyle:'italic',
paddingLeft:10,
},
wrapTags:{
flex:1,
flexDirection:'row',
flexWrap:'wrap',
alignItems: 'flex-start',
justifyContent: 'flex-start'
},
buttonTag: {
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
borderBottomRightRadius: 10,
borderBottomLeftRadius: 10,
backgroundColor: '#6575BE',
flex:1,
justifyContent: 'center',
alignItems: 'center',
},
buttonTagText: {
textAlign: 'center',
fontSize: 20,
lineHeight: 22,
color: '#fff',
fontWeight: '600',
},
答案 0 :(得分:3)
您应该删除flex: 1
以解决问题。
答案 1 :(得分:1)
查看ur View组件的宽度,您将了解那里发生的事情
答案 2 :(得分:0)
我在父flex组件中定义时遇到了相同的问题,flexWrap无法正常工作:1。 现在,我对其进行了更改,并且可以使用。
<View style={{ flexDirection: 'row' }}>
<Text style={{ flex: 1, flexWrap: 'wrap' }}></Text>
</View>