React Native——FlexBox布局

前端之家收集整理的这篇文章主要介绍了React Native——FlexBox布局前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一、弹性盒模型(The flexible Box Module),又叫FlexBox,意为“弹性布局”,旨在通过弹性的方试来对齐和分布容器中内容的空间,使其能适应不同屏幕,为盒装模型提供最大的灵活性。
Flex布局主要思想是:让容器有能力让其子项目能够改变其宽度、高度(甚至是顺序),以最佳方式填充可用空间;
React native中的FlexBox是这个规范的一个 子集
容器默认存在两根轴:水平的主轴和垂直的交叉轴,

二、FlexBox的常用属性
1、 flexDirection属性决定主轴的方向 (默认为垂直方向,起点在上沿)
flexDirection: `row | row-reverse | column | column-reverse`
row: 主轴为水平方向,起点在左端
row-reverse:主轴为水平方向,起点在右端。
column(默认值)主轴为垂直方向,起点在上沿
column-reverse:主轴为垂直方向,起点在下沿


2、 justifyContent 定义了伸缩项目在主轴线的对齐方式
justifyContent:`flex-start | flex-end | center | space-between | space-around`
flex-start(默认值):伸缩项目向一行的起始位置靠齐。(左对齐)
flex-end:伸缩项目向一行的结束位置靠齐。(右对齐)
center:伸缩项目向一行的中间位置靠齐。(居中)
space-between:两端对齐,项目之间的间隔都相等。
space-around:伸缩项目会平均地分布在行里,两端保留一半的空间。

3、 alignItems :在侧轴上对齐的方式

alignItems:`flex-start | flex-end | center | baseline | stretch`


定义项目在交叉轴上如何对齐,可以把其想像成侧轴(垂直于主轴)的“对齐方式”。
flex-start:交叉轴的起点对齐。(顶对齐)
flex-end:交叉轴的终点对齐 。(底对齐)
center:交叉轴的中点对齐。居中
baseline:项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
4、 flexWrap 换行操作
flexWrap:`nowrap | wrap | wrap-reverse`
默认情况下,项目都排在一条线上,flex-wrap属性定义,如果第一轴线排不下。如何换行。

nowrap(默认值):不换行

wrap:换行,第一行在上方。


wrap-reverse:换行,第一行在下方。(和wrap相反)



5、flex

flex-grow”、“flex-shrink”和“flex-basis”三个属性的缩写, 其中第二个和第三个参数(flex-shrink、flex-basis)是可选参数。

默认值为“0 1 auto”。


宽度 = 弹性宽度 * ( flexGrow / sum( flexGorw ) )
6、 alignSelf属性允许 单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
alignSelf:“auto | flex-start | flex-end | center | baseline | stretch”

三、获取当前屏幕的宽度、高度、分辨率

var  dimensions=require('Dimensions');


export default class abcd4 extends Component{

    render(){
                return(
                <View style={{ alignItems:'center',justifyContent:'center',flex:1}}>
                {/*当前屏幕的宽度*/}
               <Text>当前屏幕宽度:{dimensions.get('window').width}</Text>
                {/*当前屏幕的高度*/}
                <Text>当前屏幕高度:{dimensions.get('window').height}</Text>
                <Text>当前屏幕的分辨率:{dimensions.get('window').scale}</Text>



            </View>

        );
    }
}

猜你在找的React相关文章