React Native学习—— 使用Flexbox布局

Posted 麦豇豆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native学习—— 使用Flexbox布局相关的知识,希望对你有一定的参考价值。

本文基于React Native 0.52

Demo上传到Git了,有需要可以看看,写了新内容会上传的。Git地址 https://github.com/gingerJY/React-Native-Demo

一、主轴方向 flexDirection

  flexDirection决定主轴的排列方向。

  1、column——竖直(默认)

  

2、row——水平

 

 二、主轴排列方式 justifyContent 

  justifyContent决定其子元素沿着主轴的排列方式。(以下例子主轴方向为row)

  1、flex-start——子元素靠近主轴起始端

    

  2、flex-end——子元素靠近主轴末尾端

    

  3、center——主轴居中

    

  4、space-around 和 space-between 都是均匀分布,区别如下图

      

 三、次轴排列方式 alignItems

  alignItems决定其子元素沿着次轴的排列方式。(以下例子主轴方向为row,次轴方向为column

  1、flex-start——子元素靠近次轴起始端

    

2、flex-end——子元素靠近次轴末尾端

    

3、center——子元素次轴居中 

    

4、stretch——子元素撑开、填满次轴(子元素在次轴不能有固定尺寸)

    

四、示例代码

可以自己试着改变看看,需要注意的是alignItems设为stretch时,要把子元素的次轴尺寸去掉(例如主轴方向为row,则去掉height)。

import React, { Component } from \'react\';
import {
    StyleSheet,
    View,
    Text,
    Dimensions,
} from \'react-native\';

// 取得屏幕的宽高Dimensions
const { width, height } = Dimensions.get(\'window\');

export default class category extends Component {

    render() {
        return (
            <View style={styles.container}> 
                <Text>category</Text>
                <View style={styles.flexBox}>  
                    <View style={{width: 80, height:80, backgroundColor: \'powderblue\'}} />
                    <View style={{width: 80, height:80, backgroundColor: \'skyblue\'}} />
                    <View style={{width: 80, height:80, backgroundColor: \'steelblue\'}} /> 
                </View>
            </View>
        );
    }
}
const styles = StyleSheet.create({
    container: {
        flex: 1,
        alignItems: \'center\',
    },
    flexBox:{
        width:width,
        height:280,
        borderWidth:1,

        flexDirection:\'row\',//主轴方向 
        justifyContent:\'space-between\', //flex-start,flex-end,center,space-between,space-around
        alignItems:\'center\',//flex-start,flex-end,center,stretch
    }
});

  

 

END-------------------------------------------------------

  

 

以上是关于React Native学习—— 使用Flexbox布局的主要内容,如果未能解决你的问题,请参考以下文章

React Native学习

React Native学习笔记

React Native学习提纲

React-Native学习指南

react-native 学习

React-Native学习指南