美文网首页
ReactNative Flexbox笔记

ReactNative Flexbox笔记

作者: eggswift | 来源:发表于2016-07-01 15:54 被阅读440次

    介绍

    flexbox是一个新的盒子模型,当你给一个元素使用了flexbox模块,那么它的子元素就会指定的方向在水平或者纵向方向排列。这些子元素会按照一定的比例进行扩展或收缩来填补容器的可用空间。

    Flex容器

    Flex

    容器属性

    1. flexDirection

    flexDirection属性决定主轴(main axix)的方向。ReactNative中flexDirection默认值为column,并且不支持row-reversecolumn-reverse
    flexDirection: enum("column", "row")

    2. flexWarp

    flexWrap属性决定是否自动折行。
    flexWrap enum('wrap', 'nowrap')

    3. justifyContent

    justifyContent属性主要作用于main axis,决定主轴上所有flex item的对齐方式。
    justifyContent enum('flex-start', 'flex-end', 'center', 'space-between', 'space-around')

    justifyContent示例

    4. alignItems

    alignItems属性主要作用于cross axis,决定垂直主轴上所有flex item的对齐方式。
    alignItems enum('flex-start', 'flex-end', 'center', 'stretch')

    alignItems示例

    5. alignSelf

    alignSelf属性主要作用于某个flex item,决定当前flex item垂直主轴上的对齐方式。
    alignSelf enum('auto', 'flex-start', 'flex-end', 'center', 'stretch')

    6. flex

    flex属性决定主轴上flex item间的比例。如果设置flex为0则表示尽量小。
    宽度=弹性宽度*(当前flex/sum(flexs))

    单位问题

    在ReactNative中使用flex进行布局时,我们通常会设置一些标签为固定大小。这时我们设置的宽度或者高度等不需要带单位,默认使用 pt 为单位。另外在ReactNative中,我们 不能使用百分比 来进行设置我们需要的大小数值,但我们可以通过 DimenssionsPixelRatio 模块来获取窗口宽高和像素密度。

    示例如下:
    var dimensions = require('Dimensions'); var { width, height, } = dimensions.get('window');

    var pixelRatio = PixelRatio.get();

    ReactNative也支持一些其它工具方法来帮助我们获取需要的数值
    例如:getPixelSizeForLayoutSize(); getFontScale();

    相关文章

      网友评论

          本文标题:ReactNative Flexbox笔记

          本文链接:https://www.haomeiwen.com/subject/mmofjttx.html