FlexBox 是React Native布局的一种算法,目的是为了适配不一样尺寸的屏幕而设计的。react
使用时最关键的就是flex关键字的用法。算法
flex用于修饰当前View在父视图中的占比。react-native
占好比何计算:(flex 为浮点数)布局
一、当flex <= 0时 flex是无效的。此时视图不会被显示出来flex
二、当flex > 0 时:spa
a、当有多个同一层级的视图时 占比为 当前视图占flex/(全部同一层级flex总和)设计
b、当当前视图的父视图只有一个子View时,即当前视图占满了父视图。io
c、若是当前视图有子视图的话,子视图的分布是基于当前视图的显示区域的,即:若是当前视图占父视图的0.3,那么当前视图子视图若是此时的class
flex为0.5的话,这个属于当前视图的子视图在当前视图的父视图中占比为0.3*0.5=0.15import
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
export default class DimensionTest extends Component {
render() {
return (
<View style={{flex:0.1}}>
<View style={{flex:0.5,flexDirection:'column'}}>
<View style={{flex:3,backgroundColor:'red'}}></View>
<View style={{flex:2,backgroundColor:'blue'}}></View>
<View style={{flex:3,backgroundColor:'green'}}></View>
</View>
<View style={{flex:5,flexDirection:'row'}}>
<View style={{flex:3,backgroundColor:'red'}}></View>
<View style={{flex:2,backgroundColor:'blue'}}></View>
<View style={{flex:3,backgroundColor:'green'}}></View>
</View>
</View>
);
}
AppRegistry.registerComponent('DimensionTest',()=>DimensionTest);