博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React Native(四):布局(使用Flexbox)
阅读量:4067 次
发布时间:2019-05-25

本文共 4855 字,大约阅读时间需要 16 分钟。


欢迎一起来学习React Native,QQ群:672509442


简介

我们在React Native中使用flexbox规则来指定某个组件的子元素的布局。Flexbox可以在不同屏幕尺寸上提供一致的布局结构。相对于Native开发的布局更加快捷方便。

Flexbox使用flexDirection、alignItems和 justifyContent三个样式属性就已经能满足大多数布局需求

flexDirection

flexDirection可以决定zu jian组件布局的主轴,子元素会沿着主轴排列,或水平或垂直。

flexDirection的默认值是竖直轴(column)方向

column(默认)

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

column-reverse

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

row

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

row-reverse

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

justifyContent

在组件的style中指定justifyContent可以决定其子元素沿着主轴的排列方式。子元素是应该靠近主轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end、space-around以及space-between。

flex-start

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

center

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

flex-end

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

space-around

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

space-between

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

alignItems

在组件的style中指定alignItems可以决定其子元素沿着次轴(与主轴垂直的轴,比如若主轴方向为row,则次轴方向为column)的排列方式。子元素是应该靠近次轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end以及stretch。

flex-start

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

center

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

flex-end

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述

stretch

注意:

要使stretch选项生效的话,子元素在次轴方向上不能有固定的尺寸。以下面的代码为例:只有将子元素样式中的width: 50去掉之后,alignItems: ‘stretch’才能生效。

export default class AsomeProject extends Component {    constructor(props) {        super(props);    }    render() {        return (            
); }}AppRegistry.registerComponent('AsomeProject', () => AsomeProject);

这里写图片描述


欢迎一起来学习React Native,QQ群:672509442

你可能感兴趣的文章
深入理解java虚拟机一:java内存区域与内存溢出
查看>>
Spring-BeanFactory后置处理器之ConfigurationClassPostProcessor
查看>>
Dubbo源码分析之四:客户端服务调用过程
查看>>
Spring的Bean后置处理器之AutowiredAnnotationBeanPostProcessor
查看>>
那些年,我们踩过的技术坑汇总
查看>>
Dubbo的心跳机制
查看>>
程序猿应该了解的密码技术
查看>>
关于安卓端okhttp框架请求后端服务丢失Authorization请求头的问题
查看>>
RocketMQ 消费消息过程分析
查看>>
Dubbo源码分析之三:服务引用
查看>>
Spring的重要拓展点BeanPostProcessor
查看>>
RocketMQ 事务消息使用与分析
查看>>
Spring-Bean后置处理器之CommonAnnotationBeanPostProcessor
查看>>
Dubbo源码分析之二:服务暴露
查看>>
Spring-Bean后置处理器之AnnotationAwareAspectJAutoProxyCreator
查看>>
Dubbo源码分析之一:前置知识
查看>>
Dubbo源码分析之五:服务端响应客户端请求过程
查看>>
RocketMQ 延迟消息的使用与分析
查看>>
RocketMQ-延迟消息的使用与原理分析
查看>>
RocketMQ Reliablity
查看>>