我有两个问题:
我尝试使用npm package react-native-easy-grid:
<CardItem style={{borderBottomLeftRadius: 10, borderBottomRightRadius: 10, backgroundColor: '#fff'}}>
<Grid>
<Col>
<Image style={styles.warning} source={Images.warning} />
</Col>
<Col size={3}>
<Row><Text style={{flex: 1}}>Activity Alert</Text></Row>
<Row><Text style={{flex: 1, flexWrap: 'wrap'}}>No activity on easy chair for 1 hour or soooo</Text></Row>
</Col>
</Grid>
</CardItem>
我还尝试使用Views:
<CardItem style={{borderBottomLeftRadius: 10, borderBottomRightRadius: 10, backgroundColor: '#fff'}}>
<View style={{flexDirection: 'row'}}>
<Image style={styles.warning} source={Images.warning} />
</View>
<View style={{flexDirection: 'row', alignItems: 'flex-start', justifyContent: 'flex-start'}}>
<View style={{flexDirection: 'column', margin: 10, flexWrap: 'wrap'}}>
<Text style={{flex: 1}}>Activity Alert</Text>
<Text style={{flex: 1, flexDirection: 'column', flexWrap: 'wrap'}}>No activity on easy chair for 1 hour or soooo</Text>
</View>
</View>
</View>
</CardItem>
两个代码都会产生相同的结果。 是来自原生基础的组件
将carditem包装在组件容器和卡中,并带有以下css:
container: {
flex: 1,
paddingTop: Metrics.titlePadding
},
card: {
backgroundColor: 'transparent',
borderColor: 'transparent',
height: 250
}
答案 0 :(得分:1)
问题是您的View
容器Text
组件的宽度根本不受限制,因此它会扩展到所需的范围,因为这个父级View
(特别是它的弹性参数)。试试这个:
<View style={{flexDirection: 'row', alignItems: 'flex-start', justifyContent: 'flex-start'}}>
<View style={{flexDirection: 'column', flex: 1, margin: 10}}>
<Text style={{flex: 1}}>Activity Alert</Text>
<Text style={{flex: 1}}>No activity on easy chair for 1 hour or soooo</Text>
</View>
</View>
并且您不会将flexWrap
用于此目的。 flexWrap
定义弹性项是强制保留在一行还是移动到下一行,而不是其内容。如果要控制内容包装,请使用“white-space”css属性。它可能在React中有重复,但我对React tbh并不是很擅长。
至于你的第二个问题,我很难回答,因为我真的不知道你身后发生了什么Card
。但是如果你想让它自己调整内容,那么flexbox就不是正确的工具。