constraint layout 约束布局,percent layout的终结者
来源:互联网 发布:java远程读取电脑文件 编辑:程序博客网 时间:2024/06/02 05:18
创建约束布局一定要遵循下面的规则
1、每个view必须具有至少两个约束:一个水平的和一个竖直的。
2、只允许在同一平面(方向)上创建约束,所以一个view的竖直平面(也就是左右边界)只能与另一个竖直平面建立约束,baseline只能与baseline建立约束。
3、view上的每个约束手柄只能建立一个约束,但可以建立多个约束到锚点。也就是说出发的点只有一个,但是多个出发点可以连接到一个目标点。
对齐
当前view与其它view创建同侧的约束即可实现相应的对齐效果,如果要实现居中对齐,就建立双侧的约束。
建立到指导线的约束
工具栏中点击GuideLines,选择添加竖直方向或者水平方向的指导线,可以在layout中放置基于dip 或百分比为单位的指导线(点击指导线上面的小圆点来切换指导线的位置模式)
建立到容器的约束
工具栏中点击GuideLines,选择添加竖直方向或者水平方向的容器,在左侧的组件树中选择要加入容器的view,然后拖动至目标容器中。
左侧组件树中选择容器,可以在右边看到容器的属性面板,可用于更改容器方向
容器和指导线相似,但它没有自己的固定位置,它跟随自己最边界的内容 view 移动,其它view可以建立约束到容器边界,这样一个view就可以建立到一组view 的约束,而不是只能建立到特定view的约束。
调整约束偏移量
当建立左右或者上下约束后,同时view的size是固定的或者是wrap_content ,view就默认位于容器的正中,左右两个约束个保留50%的偏移,此时可以在右侧属性窗口中点击偏移滑块来调整左右的偏移量,上下同理。
view 的大小调整
1 size ratio
2 delete constraint
3 height/width mode
4 margins
5 constraint bias
可以用view顶点的手柄调整view 的大小,但是此举会固化尺寸大小,不利于屏幕适配。我们要选择不同的尺寸模式 click a view and open theAttributes
点击3所示的位置会切换尺寸模式
- Fixed: 设置固定尺寸
- Wrap Content: 根据内容自动伸展大小.
- Match Constraints: The view expands as much as possible to meet the constraints on each side (在计算完边距之后).
值得注意的是,在constraint layout中,不能使用match_parent属性,只能使用 match constraints
设置view 的长宽比
当view的长宽至少有一个设置为match contraints时,就可以设置它的长宽比,点击上图中1所示的位置,输入框中就会显示当前的长宽比。
但是如果长宽都设置为了 match contraints,点击1所处的位置就可以切换比例的基数为长或者为宽。
调整view的边距
点击工具栏中的默认边距按钮,选择默认边距,操作只会对之后添加到layout中的view有效。
也可以点击上图中4所示的位置单独为view设置边距,默认设置为8dp是为了迎合Material Design
用链表控制和操作线性view group
一组view 通过双向的约束来连接彼此,就形成了“链”,个人称之为链表
一个链表通过以下方式来分配组内的空间
1、Spread 组中各个view平均分配空间(在计算完边距之后),这也是默认的方式。
2、Spread inside 链表的两端紧贴着约束边界,其它的view平均分配组内空间
3、Weighted :当链表模式设置为Spread或者Spread inside时可以设置一个或者多个view的尺寸为match constraints 来平均分配剩余空间。另外还可用 layout_contraintHorizontal_weight 和 layout_contraintVertical_weight 属性来指定分配空间时的优先级和大小
4、packed:组中所有view挤在一块,这时可以调整整个链表的偏移量,左右或者上下的偏移量。
链表的头view 也就是水平链表的最左view,竖直链表的最上view 定义整个链表的样式,但是你可以选中链表中的任意view 然后点击链表按钮在以上四种模式中来回切换链表模式。
最重要的,如果创建一个链表: 选中目标Views 右击,选择Chain ->Center Horizontally 或者 Chain ->Center Vertically.
此外,一个view 可以是水平链表的一部分,也可以同时是竖直链表的一部分;
只有在链表的头尾约束到同一个轴上时,此链表才会正常工作。
阅读全文
0 0
- constraint layout 约束布局,percent layout的终结者
- 约束布局constraint-layout导入失败的解决方案
- 约束布局constraint-layout导入失败的解决方案
- 约束布局constraint-layout导入失败的解决方案
- 约束布局constraint-layout导入失败的解决方案
- 约束布局constraint-layout导入失败的解决方案
- Android Percent Layout 安卓百分比布局
- Constraint Layout(一)--自动创建约束
- Constraint Layout
- 布局(Layout)与约束
- Auto Layout 布局约束类
- 关于Layout Constraint的动态update方式
- WPF的布局(Layout)
- Ext的Layout布局
- Ext的 Layout布局
- Android的布局Layout
- layout布局的学习
- Layout的存取/布局
- angular 增删改查(全部删,价格段,框排序,+-,小计,总价)
- markdown编辑事件处理
- 从H264中提取NAL
- x++ 和 ++x
- xpath常用介绍
- constraint layout 约束布局,percent layout的终结者
- CSS position属性和实例应用
- javascript中的对象序列化
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- mylistview+pulltorefresh+多条目
- spring MVC 零配置
- opencv-2.4.13.4在ubuntu16.04安装遇到的一些问题
- 技术问答整理(7)
- JS中判断null、undefined与NaN的方法