RN的布局样式

作者: 夜不知枫 | 来源:发表于2017-07-02 17:13 被阅读692次

使用style变量的方式设置样式

  1. 实际开发中组件的样式会越来越复杂,我们建议使用StyleSheet.create来集中定义组件的样式。比如像下面这样:

    e.g.: 
       const styles = StyleSheet.create({
             bigBlue: {
                   color: 'blue' , fontWeight: 'blod' , fontSize: 30,
              },
              red: {
                  color: 'red',
              }
       })
    

常见的做法是按顺序声明和使用style属性,以借鉴CSS中的“层叠”做法(即后声明的属性会覆盖先声明的同名属性)。

  1. 指定宽高的属性:width,height
  2. 指定背景颜色属性:backgroundColor
    e.g.: --- 使用内联样式表构建样式
    <View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />
  3. 弹性宽高布局:在组件样式中使用flex可以使其在可利用的空间中动态地扩张或收缩。一般而言我们会使用flex:1来指定某个组件扩张以撑满所有剩余的空间。如果有多个并列的子组件使用了flex:1,则这些子组件会平分父容器中剩余的空间。如果这些并列的子组件的flex值不一样,则谁的值更大,谁占据剩余空间的比例就更大(即占据剩余空间的比等于并列组件间flex值的比)。
    注: 组件能够撑满剩余空间的前提是其父容器的尺寸不为零。如果父容器既没有固定的width和height,也没有设定flex,则父容器的尺寸为零。其子组件如果使用了flex,也是无法显示的。
    e.g.:
    <View style={{flex: 1}}>
    <View style={{flex: 1, backgroundColor: 'powderblue'}} />
    <View style={{flex: 2, backgroundColor: 'skyblue'}} />
    <View style={{flex: 3, backgroundColor: 'steelblue'}} />
    </View>

关于 Flexbox 的相关布局

  1. flexDirection : 默认是竖直轴方向
    e.g.(转化为水平方向布局): style={{flex: 1, flexDirection: 'row'}
  2. Justify Content (子元素延主轴的排列方式)
    flex-start、center、flex-end、space-around以及space-between
    e.g. :
    <View style={{
    flex: 1,
    flexDirection: 'column',
    justifyContent: 'space-between',
    }}>
    <View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />
    <View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} />
    <View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} />
    </View>
  3. Align Items (子元素延次轴的排列方式)
    在组件的style中指定alignItems可以决定其子元素沿着次轴(与主轴垂直的轴,比如若主轴方
    向为row,则次轴方向为column)的排列方式。子元素是应该靠近次轴的起始端还是末尾段分布呢?
    亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end以及stretch。
    注:要使stretch选项生效的话,子元素在次轴方向上不能有固定的尺寸。以下面的代码为例:只有将子元素样式中的width: 50去掉之后,alignItems: 'stretch'才能生效。

相关文章

  • React native 实战 --布局篇(mac)

    RN的布局 RN的布局是组件化的方式进行组合布局,没有定义flex情况下的话,布局很随意 样式的坑 要注意盒子之间...

  • RN的布局样式

    使用style变量的方式设置样式 实际开发中组件的样式会越来越复杂,我们建议使用StyleSheet.create...

  • RN中布局样式

  • RN笔记:样式布局总结

    Flexbox布局 flex 弹性布局 number用于设置弹性盒模型分配空间,比如: flex:1 flexDi...

  • RN中布局样式的写法

    介绍原始写法 & 及其改进写法一还有比较流行的 styled-components在RN中的使用 & 及其改进写法...

  • RN基本控件以及布局样式

    基本控件以及布局样式 View View是一个支持Flexbox布局、样式、一些触摸处理、和一些无障碍功能的容...

  • 非样式布局

    非布局样式-字体 非布局样式 - 行高 非样式布局 - 背景 非布局样式 - 边框 非布局样式 - 滚动 非布局样...

  • react-native listview 不滑动的原因

    写布局的时候,RN的listview偶尔出现不可以滑动的情况。经多次测试,需要这样写样式才能使listview滑动...

  • 搞懂这几步React Native才算入门

    1、了解目录结构 2、页面 2.1组件 2.2布局 2.3样式 3、页面跳转 3.1RN页面间跳转 App.js ...

  • day07

    1.布局 1.默认布局2.float布局3.层级布局(定位布局) 2.css样式的引入 3.外部样式 外部样式表 ...

网友评论

    本文标题:RN的布局样式

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