React Native(四):布局(使用Flexbox)
简介我们在React Native中使用flexbox规则来指定某个组件的子元素的布局。Flexbox可以在不同屏幕尺寸上提供一致的布局结构。相对于Native开发的布局更加快捷方便。 Flexbox使用flexDirection、alignItems和 justifyContent三个样式属性就已经能满足大多数布局需求 flexDirectionflexDirection可以决定zu jian组件布局的主轴,子元素会沿着主轴排列,或水平或垂直。 flexDirection的默认值是竖直轴(column)方向 column(默认)export default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{flex: 1}}> <View style={{width: 50,height: 50,backgroundColor: 'red'}} /> <View style={{width: 50,backgroundColor: 'green'}} /> <View style={{width: 50,backgroundColor: 'blue'}} /> </View> ); } } AppRegistry.registerComponent('AsomeProject',() => AsomeProject);
column-reverseexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{flex: 1,flexDirection: 'column-reverse'}}> <View style={{width: 50,() => AsomeProject);
rowexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{flex: 1,flexDirection: 'row'}}> <View style={{width: 50,() => AsomeProject);
row-reverseexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{flex: 1,flexDirection: 'row-reverse'}}> <View style={{width: 50,() => AsomeProject);
justifyContent在组件的style中指定justifyContent可以决定其子元素沿着主轴的排列方式。子元素是应该靠近主轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end、space-around以及space-between。 flex-startexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,flexDirection: 'column',justifyContent: 'flex-start'}}> <View style={{width: 50,() => AsomeProject);
centerexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,justifyContent: 'center'}}> <View style={{width: 50,() => AsomeProject);
flex-endexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,justifyContent: 'flex-end'}}> <View style={{width: 50,() => AsomeProject);
space-aroundexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,justifyContent: 'space-around'}}> <View style={{width: 50,() => AsomeProject);
space-betweenexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,justifyContent: 'space-between'}}> <View style={{width: 50,() => AsomeProject);
alignItems在组件的style中指定alignItems可以决定其子元素沿着次轴(与主轴垂直的轴,比如若主轴方向为row,则次轴方向为column)的排列方式。子元素是应该靠近次轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end以及stretch。 flex-startexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,justifyContent: 'center',alignItems: 'flex-start'}}> <View style={{width: 50,() => AsomeProject);
centerexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,alignItems: 'center'}}> <View style={{width: 50,() => AsomeProject);
flex-endexport default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,alignItems: 'flex-end'}}> <View style={{width: 50,() => AsomeProject);
stretch注意: 要使stretch选项生效的话,子元素在次轴方向上不能有固定的尺寸。以下面的代码为例:只有将子元素样式中的width: 50去掉之后,alignItems: ‘stretch’才能生效。 export default class AsomeProject extends Component { constructor(props) { super(props); } render() { return ( <View style={{ flex: 1,alignItems: 'stretch'}}> <View style={{height: 50,backgroundColor: 'red'}} /> <View style={{height: 150,backgroundColor: 'green'}} /> <View style={{height: 100,() => AsomeProject); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 不依赖官方captureActivity自己制作Link模式ZXingTestActiv
- 内存管理 – 当cocos2d-x 3.2中的Replacescene时内存不释放
- PostgreSQL的监控一(pgsnap & pgstatspack)
- 是否值得使用一个简单的sqlite应用程序的核心数据在iphone上
- c# – Java中的DataTable等效[复制]
- Result set type is TYPE_FORWARD_ONLY
- 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和fu
- Redis进阶实践之十四 Redis-cli命令行工具使用详解第一部分
- 动态(Ajax)共享按钮(Facebook,Google和Twitter)共享图像,带
- 无法将Alamofire添加到Swift Project