React-Native flex 布局使用总结

React-Native flex 布局使用总结

父视图属性(容器属性):
  1. flexDirection : 对子布局方向的设置

    row : 从左到右依次排列
    row-reverse :从右向左依次排列
    column:(default) 从上到下排列
    column-reverse :从下到上排列
    

  2. flexWrap: 定义子布局是否在父布局中多行排列

    wrap: 允许多行排列
    nowrap:(defaut) 不允许多行排列
    

  3. justifyContent : 定义子元素之间的排列方式

    flex-start:(default) 从行首开始排列。每行第一个弹性元素与行首对齐,同时所有后续的弹性元素与前一个对齐。
    flex-end: 从行尾开始排列。每行最后一个弹性元素与行尾对齐,其他元素将与后一个对齐。
    center: 伸缩元素向每行中点排列。每行第一个元素到行首的距离将与每行最后一个元素到行尾的距离相同。
    space-between: 在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素与行首对齐,每行最后一个元素与行尾对齐。
    space-around: 在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素到行首的距离和每行最后一个元素到行尾的距离将会是相邻元素之间距离的一半。
    

  4. alignItems: 属性以与justify-content相同的方式在侧轴方向上将当前行上的弹性元素对齐,默认为stretch。

子视图属性

    上面介绍的是父视图的属性,接下来介绍的是子视图的属性
  1. alignSelf : 定义子视图相对父容器的属性 相当于在父视图基础上从新设置子视图的位置

    enum('auto', 'flex-start', 'flex-end', 'center', 'stretch')
    
    stretch:元素被拉伸以适应容器。
    center: 元素位于容器的中心。
    flex-start: 元素位于容器的开头。
    flex-end: 元素位于容器的结尾。
    


2. flex :相当于设置子视图的权重

参考

具体教程参考
http://www.jianshu.com/p/688b9108a922

源码地址

链接 https://github.com/yxwandroid/rnMydemo

关注公众号获取更多内容

React Native弹性布局是一种基于Flexbox布局模型的布局方式,它可以让你更轻松地创建具有弹性的用户界面。Flexbox是一种用于在屏幕上分配空间的CSS3布局模型,它可以将一个容器中的子元素沿着一个主轴和交叉轴进行对齐和排列。在React Native中,弹性布局可以让你使用一系列简单的布局属性来指定容器中的子元素如何进行布局。 具体而言,React Native中弹性布局有以下常用属性: - `flex`:定义一个元素的伸缩能力,默认值为0,即不伸缩。 - `flexDirection`:定义元素在容器中的排列方向,可选值包括`row`(水平方向)、`column`(竖直方向)、`row-reverse`(反向水平方向)和`column-reverse`(反向竖直方向)。 - `justifyContent`:定义元素在主轴上的对齐方式,可选值包括`flex-start`、`center`、`flex-end`、`space-between`(两端对齐)和`space-around`(各个元素之间留有空隙)。 - `alignItems`:定义元素在交叉轴上的对齐方式,可选值包括`flex-start`、`center`、`flex-end`、`stretch`(默认值,拉伸元素以填充交叉轴)和`baseline`(让元素按照它们的基线对齐)。 下面是一个使用弹性布局实现水平居中和竖直居中的例子: ```javascript import React from 'react'; import { View, StyleSheet } from 'react-native'; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', }, box: { width: 100, height: 100, backgroundColor: 'red', }, }); const App = () => { return ( <View style={styles.container}> <View style={styles.box} /> </View> ); }; export default App; ``` 这里的`container`使用了弹性布局,并且使用了`justifyContent`和`alignItems`来实现水平和竖直居中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值