【发布时间】:2017-12-06 18:26:28
【问题描述】:
我正在尝试使用 Flexbox 在 React-Native 中构建布局,但当文本很长时我遇到了问题。我希望布局看起来像这样:
但是,当蓝色文本变长时,它会将日期从屏幕右侧推开,如下所示:
我故意让文本保持在 1 行。我想要的是蓝色文本尽可能扩大而不会使文本缩小。我是 RN 的新手,我在 CSS 方面的工作非常有限,所以我没有太多做这类事情的经验。这是我的样式表代码:
const styles = StyleSheet.create({
textContainer: {
flex: 1
},
separator: {
height: 1,
backgroundColor: '#dddddd'
},
title: {
fontSize: 25,
fontWeight: 'bold',
color: '#48BBEC'
},
subtitle: {
fontSize: 20,
color: '#656565'
},
dateContainer: {
flex: 1,
justifyContent: 'center',
alignItems: 'flex-end'
},
rowContainer: {
flexDirection: 'row',
padding: 10
}
});
最后,我的布局代码:
<TouchableHighlight
underlayColor='#dddddd'>
<View style={styles.rowContainer}>
<View cstyle={styles.textContainer}>
<Text numberOfLines={1} style={styles.title}>{rowData.name}</Text>
<Text style={styles.subtitle}>{rowData.teacher}</Text>
</View>
<View style={styles.dateContainer}>
<Text style={styles.subtitle}>{result}</Text>
</View>
<View style={styles.separator}/>
</View>
</TouchableHighlight>
【问题讨论】:
-
只是一个建议 - 尝试给 dateContainer 一个最小宽度值?
-
我试过了,但是蓝色的文字在日期文字下面
-
@beyerss 不确定我是否理解所需的功能,当文本太长时会发生什么?
-
试试“textContainer”类的最大宽度怎么样?
-
如果我做百分比,那可能会给日期留下太多空间。例如,平板电脑将比手机拥有更多的空白空间。到目前为止,这是最好的解决方案,但我希望有更好的方法来做到这一点,以便标题可以一直增长到日期文本。
标签: css layout react-native flexbox react-native-android