今天我们来个庖丁解牛。对于一个完整的组合组件,看看通过工具是如何轻松完成的。
首先看看九宫格完整的样子。
 
结构树是这样的。在结构树中,我们可以看到WViewColumn下面有九个WViewRow。WViewColumn之上的我们可以不用管,这些是画布上的内容,为了辅助设计用的。9个WViewRow是九宫格中的实际元素item。
 
每个item中图片和文字上下排列,九个item换行排列。那么这些是怎么做到的呢,当然是FlexBox的作用。下面详细介绍FlexBox属性对布局的影响。
首先来介绍item的FlexBox属性。
 
其中display肯定是flex。flex-direction=row表示主轴X是横向,也就是我们习惯的xy坐标系的原点在view的左上角,x轴向右,y轴向下。如果flex-direction=column则是x轴向下,y轴向右。我们实际应用中只要使用row这种方式应该都能完成大部分布局要求。
flex-wrap=wrap表示换行。这个属性决定了内部组件图片和文字排列为两行。
justify-content=space-around。这个属性表示在每行中元素的间隔方式。由于此例中第一行是图片,第二行是文字,所以此属性不起作用。后面课程中会介绍。
align-items=center决定了在y轴上的排列,是垂直居中。结合justify-content=center的话,内部元素会水平、垂直居中。
align-content=space-around表示图片和文字之间的行间距方式。顶端和底部都有留白,图片和文字之间有留白。顶部和底部的留白是图片和文字之间留白的一半大小。
以上属性的设置,决定了内部元素在主轴x和副轴y的排列和间隔。我们在开始使用工具时,可以多改变一下每个属性的值,看看布局效果。然后将自动生成的wxml和wxss粘贴到微信开发者工具中预览。
然后我们看看最外一侧view的flexbox属性设置
 
display、flex-direction、flex-wrap这三个属性告诉浏览器我要用flex布局,并且横向排列和换行。
justify-content、align-items和align-content都是flex-start,决定了内部组件在x轴是从原点向右紧挨着排列,在y轴上从原点向下紧挨着排列。这样就决定了9个item是从左上角向x和轴排列。当然我们也可以将这三个属性设置为center,表示从view的中心向四面排列,也可以做出9宫格。
flexbox属性的组合很多,实际开发时结合此工具的使用可以做到事半功倍的效果。通过工具中属性的更改,便可所见即所得。
工欲善其事必先利其器,熟练掌握一个工具的使用,势必提高我们的开发效率。大家刚开始使用此工具时,更多的变幻一下flexbox的属性,看看布局效果。当完全掌握后,会起到意想不到的效果。

小程序UI设计(6)-布局分解-九宫格的更多相关文章

  1. 小程序UI设计(1)-布局

    工欲善其事必先利其器.下面为大家介绍一款工具软件,如何做到轻松布局. 工具简介:小程序layout设计工具,可视化方式进行小程序UI设计.通过鼠标拖拽组件方式进行UI布局.工具提供符合微信视觉统一的模 ...

  2. 小程序UI设计(4)-符合视觉规范-表单输入视觉规范

    下图是微信官方的要求 按照小程序UI设计(3)-符合视觉规范-列表视觉规范同样的方式,我们可以设计一样符合规范的输入项目.规范中没有说明padding-left的大小,我们暂定是15px.这样最外层v ...

  3. 小程序UI设计(3)-符合视觉规范-列表视觉规范

    上一篇我们介绍了字体规范,此贴介绍一下在列表中如何组合使用.下图是微信官方的要求   在工具中通过拖拽组件可以制作出一样的效果拖拽一个WViewRow.这个组件是小程序的view,flex-direc ...

  4. 小程序UI设计(7)-布局分解-左-上下结构

    FlexBox布局中的变幻方式很多,我们继续了解一个左-上下结构的布局分解  左边结构树中WViewRow下面有两个WViewColumn.WViewRow是横向排列,WViewColumn是纵向排列 ...

  5. 小程序UI设计(9)-文字排版

    小程序中一般很少大段落的文字,基本是4.5个字的主题.一行标题.一行摘要.两行描述.显示时超出部分用省略号代替.下面结合工具使用介绍一下文字排版的方法.先看效果图.  工具中属性设置如下图:两行文字属 ...

  6. 小程序UI设计(10)-巧用模板,事半功倍

    工具中为小程序员们准备了符合微信开发规范的模板.之前帖子中介绍的规范都在模板中已经设计好了,可以直接复制粘贴使用.下图中的样式是从模板直接复制过来的.实际使用时只要更换为自己的图片和文字即可.自动生成 ...

  7. 小程序UI设计(2)-符合视觉规范-字体规范

    下图是微信小程序官方要求字体规范 根据此要求小程序设计工具定制了符合规范的组件.如下图 工具使用时,将左侧组件拖拽到设计区域即可.字体大小和颜色都是按照规范设置的.在使用时根据微信要求在不同位置摆放即 ...

  8. 小程序UI设计之-介绍篇

    工具截图 此工具通过可视化操作进行布局,依据iphone6尺寸设置画布,可以自动生成rpx和百分比的wxss.后续还会增加js代码自动生成.工具中组件按照微信小程序开发规范进行了缺省设置,margin ...

  9. 小程序UI设计(8)-布局分解-FlexBox的align-content应用

    FlexBox的align-content到底是什么鬼,我也搞了好半天才开发出来,目前工具中WViewRow组件使用了此属性,WViewColumn中此属性不起作用.下图是justify-conten ...

随机推荐

  1. kvm简介及创建虚拟化安装(1)

    kvm虚拟化介绍 一.虚拟化分类 1.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立 ...

  2. Ubunut16.04 安装 Mahout

    近期笔者想安装mahout,看到网上教程过于陈旧,故记录之 转载请包含 http://www.cnblogs.com/lqruui/p/6037680.html 1.下载mahout   mahout ...

  3. C#在非UI线程调用UI线程的控件

    首先需要定义一个委托(delegate): private delegate void delegateSetProcessBarVal(int value); 然后定义一个方法来执行具体的操作: p ...

  4. 搭建elk集群 disabled in libcurl elasticsearch-6.2.2 更新license 版本

    0.logstash的部分配置 output { stdout {codec => rubydebug} elasticsearch { hosts => ["172.31.25 ...

  5. 【转帖】GBase 数据库

    产品介绍 分析型数据管理系统 GBase 8a GBase 8a能够实现大数据的全数据(结构化数据.半结构化数据和非结构化数据)存储管理和高效分析,为行业大数据应用提供完整的数据库解决方案.GBase ...

  6. Shell初学(七)linux账户管理/群组管理

    [1]新建用户 用户相关文件:/etc/passwd  /etc/shadow useradd useradd的默认预设 [2]设置密码 passwd 常见修改密码使用技巧: echo "1 ...

  7. python多任务——协程的使用

    使用yield完成多任务 import time def test1(): while True: print("--1--") time.sleep(0.5) yield Non ...

  8. Encryption (hard) CodeForces - 958C3 (树状数组)

    大意: 给定序列$a$, 要求将$a$分成$k$个非空区间, 使得区间和模$p$的和最小, 要求输出最小值. $k$和$p$比较小, 直接暴力$dp$, 时间复杂度是$O(nklogp)$, 空间是$ ...

  9. GoAccess安装

    编译安装 yum install geoip-devel openssl-devel libmaxminddb-devel ncurses-devel bzip2-devel tokyocabinet ...

  10. java实现的LinkedLilst

    package javabean.adt.List; import java.util.ConcurrentModificationException; import java.util.Iterat ...