Lan*_*tig 3 javascript react-native
出于某种原因,alignItems: center在容器视图上设置样式会导致弹性行内的文本停止换行,并且不会尊重容器视图padding.
这里的工作示例和代码:https://rnplay.org/apps/FsDXuQ
我尝试按照建议将flexDirection设置为column,使用flex:1或flexWrap,但唯一有效的方法是alignItems: center从容器视图中删除.
我不明白这里发生了什么.如果我想要怎么办
谢谢.
我们在我的公司遇到了同样的问题,据我所知,没有任何非黑客的方法可以解决这个问题。
我们处理的方法是从主容器中完全删除alignItems属性,并给容器一个flex:1属性。然后,我们对所需的任何子组件使用alignItems: 'center',而无需将样式传播到所有子组件。
我已经设置了一个我在这里讨论的示例,并粘贴了下面的代码。
'use strict';
var React = require('react-native');
var {
AppRegistry,
Image,
StyleSheet,
Text,
View,
Dimensions
} = React;
var width = Dimensions.get('window').width
var shortText = "Lorem ipsum dolor sit amet, consectetur adipis.";
var longText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sollicitudin ligula ut leo dictum, id elementum sapien faucibus. Nullam et feugiat neque";
var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<View style={ styles.alignCenter }>
<Text>{shortText}</Text>
</View>
<Text/>
<View style={{ flexDirection: 'row', flexWrap: 'wrap' }}>
<Image source={{uri: "http://icons.iconarchive.com/icons/designbolts/free-male-avatars/128/Male-Avatar-icon.png"}} style={{height: 32, width: 32}}/>
<View style={{ flex:1 }}>
<Text >{longText}</Text>
</View>
</View>
</View>
);
}
});
var styles = StyleSheet.create({
container: {
padding: 30,
marginTop: 65,
flexWrap: 'wrap',
flex:1
},
alignCenter: {
alignItems: 'center'
}
})
AppRegistry.registerComponent('SampleApp', () => SampleApp);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3316 次 |
| 最近记录: |