ConstraintLayout约束布局

16 篇文章 0 订阅
订阅专栏

ConstraintLayout是Android Studio2.2新添加的布局。除了可以使用可视化的方式编写界面布局,还可以减少布局的嵌套。

用法包括以下几个方面:

(1)相对定位

(2)边距

(3)居中定位和倾向

 (4)圆形定位

(5)百分比布局

(6)宽高比例

(7)Chain

一、相对定位

  • 相对定位是在ConstraintLayout中创建布局的基本构建方法之一。相对定位即一个控件相对于另一个控件进行定位。

  • ConstraintLayout布局中的控件可以在横向和纵向上以添加约束关系的方式进行相对定位,其中,横向边包括Left、Start、Right、End,纵向边包括Top、Bottom、Baseline(文本底部的基准线)。 

  •  

  •  

    相对定位关系的属性

二、margin

 

  • 通过设置layout_margin实现。

           android:layout_marginStart、android:layout_marginEnd、android:layout_marginLeft

          android:layout_marginTop、android:layout_marginRight、android:layout_marginBottom

  • 当控件A隐藏时,控件B可用的margin

           layout_goneMarginStart、layout_goneMarginEnd、layout_goneMarginLeft

          layout_goneMarginTop、layout_goneMarginRight、layout_goneMarginBottom

三、居中定位与倾向

 当相同方向上(横向或纵向),控件两边同时向ConstraintLayout添加约束,则控件在添加约束的方向上居中显示。

<Button 

             android:id="@+id/button"...

             app:layout_constraintLeft_toLeftOf="parent"

             app:layout_constraintRight_toRightOf="parent"/>

在约束是同向相反的情况下,默认控件是居中的,但是也像拔河一样,两个约束的力大小不等时,就会产生倾向。

 

  <Button 

             android:id="@+id/button"...

             app:layout_constraintHorizontal_bias="0.3"

             app:layout_constraintLeft_toLeftOf="parent"

             app:layout_constraintRight_toRightOf="parent"/>

 

四、圆形定位

  • 通过角度和距离约束一个控件相对于另一个控件的位置,可以使用属性有:

            (1) layout_constraintCircle : 参照控件的id

            (2) layout_constraintCircleRadius : 相对控件中心的距离,也就是圆的半径

            (3) layout_constraintCircleAngle : 相对夹角(从0 ~ 360度)

   <Button 

            android:id="@+id/buttonB" ...

            app:layout_constraintCircle="@+id/buttonA"

            app:layout_constraintCircleRadius="100dp"

            app:layout_constraintCircleAngle="45" />

 

五、百分比布局

设置百分比布局方法:

    (1)设置控件的layout_width或者 layout_height 为0dp

    (2)设置属性 layout_constraintWidth_default="percent"

       或 layout_constraintHeight_default="percent"

    (3)设置 layout_constraintWidth_percent或 layout_constraintHeight_percent为指定百分比

    例:设置一个按钮的宽是屏幕宽度的30%:

    <android.support.constraint.ConstraintLayout ...>

            <Button

              android:id="@+id/buttonB"

              android:layout_width="0dp"

              android:layout_height="wrap_content"

              android:text="button B"

              app:layout_constraintLeft_toLeftOf="parent"

              app:layout_constraintWidth_default="percent"

              app:layout_constraintWidth_percent="0.3"/>

    </android.support.constraint.ConstraintLayout>

六、设置宽高比

  • 当控件的 layout_width或者 layout_height设置为0dp时,可以通过属性 layout_constraintDimensionRatio设置宽高比例,该比例表示 width:height值。

        <Button

            android:layout_width="wrap_content"

            android:layout_height="0dp"

            app:layout_constraintDimensionRatio="1:1" />

  • 当控件的 layout_width与 layout_height都设置为0dp,可以在比例前加上h或w,例如:

         h,16:9 表示宽度占满父控件,约束高度为宽度的9/16

         w,1:5 表示高度占满父控件,约束宽度为高度的1/5

 

七、Chain

  • Chain(链)是一种特殊的约束,它使我们能够对一组水平或竖直方向互相关联的控件进行统一管理。一组控件通过一个双向的约束关系链接起来,就能形成一个Chain。

  • 通过为Chain Head设置layout_constraintHorizontal_chainStyle或 layout_constraintVertical_chainStyle属性设置Chain的样式。

            (1)packed

            (2)spread

            (3)spread_inside

 

Chain的样式

番外篇:滚动视图

  • Android的布局结点不支持滚动,如果需要显示超出屏幕部分的内容,需要借助ScrollView。

  • ScrollView分为垂直方向和水平方向两类,垂直滚动视图为ScrollView;水平滚动视图为HorizontalScrollView。

  • 垂直方向滚动时,layout_width要设置为match_parent,layout_height设置为wrap_content。

  • 水平方向滚动时,layout_height要设置为match_parent,layout_width设置为wrap_content。

  • ScrollView下只能包含一个子布局。

 

 

 

       

       

约束布局ConstraintLayout
GeofferySun的专栏
04-21 2676
国际惯例,官网参考文档是最好的学习资料: 使用 ConstraintLayout 构建自适应界面 1,背景 约束布局 ConstraintLayout 是最受欢迎的 Jetpack 库之一,其实是Android Studio 2.2中主要的新增功能之一,也是 Google 在2016年的 I/O 大会上重点宣传的一个功能。AS 已经将它作为新建页面默认布局了。经历这几年的迭代,功能已经非常的成熟,现在 2.0 正式版本也发布了,也许你已熟悉了旧版本中的功能,并开始用它来快速构建复杂的页面布局,而新版本除了包
相对布局android:visibility,Android最强布局——ConstraintLayout约束布局
weixin_35427369的博客
05-26 863
Android最强布局——ConstraintLayout约束布局Android最强布局——ConstraintLayout约束布局首先,现附上官方文档:ConstraintLayout官方文档约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android ...
constraintlayout_熟悉又陌生的ConstraintLayout布局
weixin_39897070的博客
11-27 407
中文名:约束布局出生日期:2016年为什么熟悉?ConstraintLayout是近几年I/O大会力推功能之一,从Android Studio 2.3开始新建布局默认就是它,而且基本上每一次Studio升级日志里都能见到它的身影,所谓没吃过猪肉也肯定见过猪跑。为什么陌生?约束布局可以说是有史以来功能最复杂的布局了,很多人可能没有沉下来心来好好了解一下这个布局,新建布局后第一步就是刷刷地删掉默认根布...
ConstraintLayout属性说明
最新发布
一个人的暗
07-22 619
ayout_constraintTop_toTopOf:将某一控件的顶部与另一控件的顶部对齐。layout_constraintTop_toBottomOf:将某一控件的顶部与另一控件的底部对齐。layout_constraintBottom_toTopOf:将某一控件的底部与另一控件的顶部对齐。layout_constraintBottom_toBottomOf:将某一控件的底部与另一控件的底部对齐。
实战篇ConstraintLayout的崛起之路
文淑的博客
05-05 3111
本篇文章已授权微信公众号 guolin_blog(郭霖)独家发布 一、简介 为啥会取这个标题,绝不是为了噱头,源于最近看了一部国产漫画一武庚纪2,剧情和画质都非常棒的良心之作,且看武庚的崛起 。。。 回忆当初稍微复杂的界面,布局的层级嵌套多层,布局最终会解析成 View 的树形结构,这对渲染性能产生了一定的影响,并且也增大了代码的维护难度。Google 工程师正是考虑到这一因素,推出了 ...
ConstraintLayout 布局详解
st526403649的博客
07-08 7425
ConstraintLayout 布局详解 简介 约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout。 优点 在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多,ConstraintLayout使用起
ConstraintLayout布局学习
diemei8613的博客
08-21 110
这两天跟着Google的官方文档学习了一下ConstraintLayout布局,相较于RelativeLayout来说最大的好处是ConstrainLayout布局可以减少嵌套,提升性能。 参考:解析ConstraintLayout的性能优势 https://mp.weixin.qq.com/s/gGR2itbY7hh9fo61SxaMQQ? 相对定位 ConstraintL...
详解Android ConstraintLayout 约束布局的用法
08-28
Android ConstraintLayout 约束布局的用法详解 ConstraintLayout 是 Google 于 2016 年发布的新布局方案,旨在解决传统 Android 开发中界面编写的不便捷问题。 ConstraintLayout 的出现,解决了布局嵌套过多的问题...
android 约束布局 性能,Android ConstraintLayout约束布局完全解析
weixin_39887546的博客
05-26 777
布局优化是性能优化的一个方向点,包括了根据需求应该选用哪种布局容器、ViewStub懒加载,如何减少布局层级等,今天我们要探讨的就是如何使用ConstraintLayout来优化我们的布局层级。概述.png提出问题为什么要用这个布局?怎么用这个布局?不足在哪里?优势ConstraintLayout就是为性能而生,目标就是减少布局嵌套,提高measure+layout性能,来看看官方给出的数据。性能...
Android-ConstraintLayout约束布局的概念与使用
08-12
ConstraintLayout(约束布局), 是2016年Google I/O最新推出的Android布局, 目前还在完善阶段. 从推出的力度而言, 应该会成为主流布局样式. 在最新版本的Android Studio中, ConstraintLayout已经成为默认布局.
约束布局ConstraintLayout 约束布局 ( 简介 | 引入依赖 | 基本操作 | 垂直定位约束 | 角度定位约束 | 基线约束 )
让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 )
06-28 5393
一. ConstraintLayout 简介 1. 引入 约束 布局 ( 1 ) 约束布局 作用 和 简介 2. 约束 简介 ( 1 ) 约束个数要求 ( 2 ) 约束设置 与 显示位置 3. ConstraintLayout 引入 ( 1 ) ConstraintLayout 依赖添加 ( 2 ) ConstraintLayout 转换 与 添加 二. ConstraintLayout 约束 的 基本操作 1. 约束基本操作 ( 1 ) Design ( 设计 ) 和 Bluepr
android studio项目-ConstraintLayout布局案例
11-26
android studio项目-ConstraintLayout布局案例。 新版本的android studio开发工具新增的一个非常厉害的布局ConstraintLayout,可以高效率地进行应用界面的布局开发。
ConstraintLayout布局的简单使用
qq_31558203的博客
03-23 309
ConstraintLayout 约束布局ConstraintLayoutandroid.view.ViewGroup,它允许您灵活地定位和调整小部件大小。 不多废话直接来看如何使用。 首先打开你的Android studio,新建项目,我现在使用的android studio是3.6.1版本,布局已经默认帮你设置为ConstraintLayout。 那么开始操作,我们来新建一个登录...
基础布局ConstraintLayout约束布局
似霰的博客
04-01 3282
基础布局ConstraintLayout约束布局
Android约束布局ConstraintLayout
2401_84011132的博客
03-30 1465
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。Android 基础知识点Java 基础知识点Android 源码相关分析常见的一些原理性问题。
ConstraintLayout约束布局详解
KWMax
07-04 1万+
最近,看了郭神和鸿神关于ConstrainLayout的博客,写得很优秀,故模仿着也写下了这篇。一、ConstraintLayout概述ConstraintLayout, 即约束布局, 是Google在去年的I/O大会上重点宣传的一个功能。从支持力度而言, 将成为主流布局样式, 代替其他布局, 减少布局的层级, 优化渲染性能. 在新版Android Studio中, ConstraintLayou...
Android开发 ConstraintLayout布局的详解
Dream It Possible
10-28 4572
这里的定位属性指的是 layout_constraintTop_toTopOf 、layout_constraintTop_toBottomOf 、 layout_constraintStart_toEndOf 等等此类属性。 为了方便后续理解,这里说明下此类定位属性的意思。此类定位属性在文本上想表达的是 当前View 在 定位View 什么位置上。 这里举几个例子,例如: layout_constraintTop_toBottomOf 这个属性的意思是 当前View的上边(Top)在 目标Vi
Android ConstraintLayout布局使用详解
热门推荐
华至的博客
08-21 5万+
Android ConstraintLayout是谷歌推出替代PrecentLayout的组件。支持相对布局、线性布局、帧布局,笔者看来更像是FrameLayout 、LinearLayout、RelativeLayout三者的结合体,并且比这三者更强大的是实现了百分比布局,大家都知道安卓碎片严重,使用百分比适配,那么将彻底解决适配问题。 本文将教会你如何使用此控件。 一、当作Relative...
约束布局ConstraintLayout看这一篇就够了
hasayaqimomo的专栏
08-10 510
1.介绍 约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayoutConstraintLayout 官方文档 2.为什么要用ConstraintLayout 在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也
ConstraintLayout(约束布局)和LinearLayout (线性布局)
06-01
ConstraintLayout和LinearLayout都是Android应用程序中常用的布局方式。 LinearLayout是最简单的布局方式,可以将子视图按照水平或垂直方向排列。LinearLayout布局简单的场景下表现良好,但是在复杂的布局中难以实现。 而ConstraintLayout是一种相对定位的布局方式,可以在子视图之间建立关系,通过设置不同的约束条件,子视图可以按照不同的方式进行排列。因此,在复杂的布局中,使用ConstraintLayout可以更加灵活地实现布局效果。同时,ConstraintLayout的性能也比较优秀,因为它可以有效地减少布局层级,提高布局渲染效率。 总的来说,如果布局比较简单,可以使用LinearLayout,而对于复杂的布局,建议选择ConstraintLayout
写文章

分类专栏

  • 大前端 13篇
  • Node
  • markdown
  • Android 16篇
  • Mybatis框架学习
  • word中插入优美的代码 1篇
  • 数据结构
  • 计算机组成原理 1篇
  • 海明码 1篇
  • ACM 1篇
  •  zzuli OJ 1篇

最新评论

  • 数据结构中的‘’&‘’作引用和取地址符的区别和作用

    solitude843: 在函数的形参中,引用参数是根据函数调用时传递的实际变量来确定其别名的。当你调用函数并将一个变量作为引用参数传递给它时,这个变量的别名就是函数参数的名字。

  • 数据结构中的‘’&‘’作引用和取地址符的区别和作用

    霜雪落白头303: 我也有这样的疑问🤔️

  • 数据结构中的‘’&‘’作引用和取地址符的区别和作用

    qq_67690178: 在形参中,引用怎么知道是谁的别名呢

最新文章

  • 为什么react的setState方法只能获取到上一次的值
  • Vue中使用[$router.push]重复点击报错解决方案
  • 常用配置src路径别名@(含ts项目、craco)
2023年1篇
2022年13篇
2020年20篇
2019年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家张掖玻璃钢动物雕塑多少钱山东欧式玻璃钢雕塑优势内蒙古玻璃钢红军雕塑万圣节商场女装品牌美陈玻璃钢卡通牛雕塑批发山水画风格的商场美陈西安动物玻璃钢雕塑动物玻璃钢雕塑方法成都常用玻璃钢雕塑摆件福建商场美陈市场报价宜宾玻璃钢海豚雕塑厂家珠海玻璃钢雕塑定做厂家云南抚州道路玻璃钢花盆河北大型玻璃钢雕塑生产厂家聊城玻璃钢胸像雕塑牡丹江玻璃钢雕塑造型惠州市鼎艺玻璃钢雕塑厂甘肃玻璃钢雕塑企业北京大型商场美陈批发宣武区道路玻璃钢花盆圆锥形玻璃钢花盆萍乡景区玻璃钢雕塑滁州玻璃钢雕塑厂家玻璃钢仿铜李时珍雕塑北京人物玻璃钢雕塑供应商绵阳玻璃钢雕塑摆件施工厂家石家庄玻璃钢雕塑承诺守信大庆玻璃钢卡通雕塑厂家玻璃钢陈列雕塑景洪市玻璃钢雕塑供应香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化