首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android ConstraintLayout布局详解

为什么要使用ConstraintLayout? 上面的定义也透露出重要的信息,那就是可以实现最大程度几乎完全的扁平化。我们知道项目中的布局嵌套问题对我们的项目性能有着不小的威胁。...Constraint Layout同时具有Relative Layout和Linear Layout的优点、特性。功能强大。 使用Constraint Layout来布局时性能要比其他布局方式高。...style为packed: style为spread: style为spread inside: 其他的就不演示了,贴张官方图效果: GuideLine GuideLine 他是一条辅助线...因为GuideLine是控件我们可以给其设置id,让他来约束其他控件,从而实现我们想要的效果。 通过这个例子我们看出来,GuideLine是作用确实巨大。...总结 通过上面对ConstraintLayout的特性介绍,我们发现ConstraintLayout的确实很强大,有能力实现扁平化的极致。

1.9K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android中使控件保持固定宽高比的几种方式

    自定义View 自定义view,重写onMeasure或onLayout等相关方法,通过预定的比例计算宽高。...ConstraintLayout 这种方式与百分比布局类似,使用的是ConstraintLayout的DimensionRatio属性,代码如下: ConstraintLayout...的xml文件;缺点是需要使用ConstraintLayout。...在上面示例中我们将ImageView的宽高都设置为0。就此我测试了其他的可能性,产生的几个情况如下: 1、如果组件宽高都设置0dp,组件宽高按比例,且只受父view的约束。...如图 2、如果其中一个设置成了wrap_content或match_parent,比如说宽度,那么宽度就会是 图片的真实宽度 和 父view的限制宽度 的较小值,而高度会根据宽度和比例计算出来。

    2.9K20

    还在用Android正经布局来写页面吗?

    ConstraintLayout布局出来已经很久了,刚出来那会儿就想尝试一下的,结果半天都没适应,前两天看到一篇ConstraintLayout实战的文章,看完之后发现这布局贼鸡儿好用啊,日常开发中的大多数布局使用它都可以完成...7、设置宽高比例 在使用百分比布局时,有两种形式可以设置: layout_constraintDimensionRatio,给宽或者高其中一个设置为0dp,然后设置该属性是一个比例,宽和高的比(相对那个已知长度的...app:layout_constraintDimensionRatio,设置宽和高都为0dp,然后设置改属性的值为H,x:y 或者 W,x:y,看一下demo ?...然后,子项的水平或垂直偏差属性将影响该链元素的定位 9、辅助布局Guildline 这是ConstraintLayout布局特有的功能,你可以用它来辅助你完成布局,类似于高中数学图形学中的辅助线,只不过这条辅助线只有两个方向...:指定辅助线距离右边或者底部的距离 `layout_constraintGuide_percent`:指定在父控件中的宽度或高度的百分比 代码 以上demo的代码全都上传至 Github:https:

    1.4K30

    让你的团队强制推行ConstraintLayout!

    为什么推荐使用ConstraintLayout ConstraintLayout(约束布局)在2016年的Google I/O大会上就推出来了,经历这两年的迭代,功能已经非常的成熟了。...layout_constraintDimensionRatio(控制布局比例): 我们经常会遇到某些布局需要展示特殊的比例(16:9、2:1、4:3等等)。...> 有什么优点 上面介绍了ConstraintLayout的部分功能,强烈推荐你去使用感受一下,在你使用过程中才能真正的体会到爽快。...我们使用ConstraintLayout之后,减少了很多的嵌套的层级。这样View在渲染的时候,减少了很多多余的measure和layout的开销。...所以,建议我们现在的开发者强制推行使用ConstraintLayout,无论从开发速度还是页面的渲染速度都是提升明显的。

    96530

    安卓webview注入js修改网页文本或添加其他元素

    webview的骚操作 webview不止可以加载网页,加载的同时,网页的任何元素我们都是可以修改的,隐藏、替换、插入新的html元素balabala,总之,webview的神奇给了我们很多发挥创意的可能...: 而且操作起来也是异常简单,几乎是模板代码,不管你是否精通js,你都可以有模有样的轻而易举的实现你想要的效果。...干说无趣,举个栗子: 如下网页,我放到了自己的app里,但是又不希望出现该网页的标题。...因为这个方法是页面load完才会执行我们自己的方法,那些不想看到的元素一开始还是显示的,只有页面完全加载完才会被我们替换掉,这样肯定是不能忍的。...于是,随便换一个能实时调用的地方,问题解决。就是这么粗暴,看其他文章有说写handler和线程去搞,太麻烦了,还得开线程,不能忍,最后,还是用我的简单粗暴的方法,效果依旧完美。

    4.7K30

    【Android 屏幕适配】屏幕适配通用解决方案 ⑥ ( 约束布局 ConstraintLayout 百分比布局方案 | 将设计稿尺寸自动转为约束布局百分比标签属性 | 将输出结果设置到组件标签中 )

    】ConstraintLayout 屏幕适配案例 ( 使用代码生成约束布局控件属性 ) 博客 ; 一、将设计稿尺寸自动转为约束布局百分比标签属性 ---- 美工给出的设计稿尺寸 720 \times...\"\n" + "app:layout_constraintWidth_percent=\"" + width_percent + "\"\n\n\n" + "app:layout_constraintDimensionRatio...app:layout_constraintWidth_default="percent" app:layout_constraintWidth_percent="1.0" app:layout_constraintDimensionRatio...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk...layout_constraintVertical_bias="0.0" android:scaleType="fitXY" android:src="@mipmap/ic_launcher" /> constraintlayout.widget.ConstraintLayout

    1.7K10

    深入浅出,官方文档看ConstraintLayout

    继承关系 ConstraintLayout和其他布局一样,继承自ViewGroup,但是不同点在于它调整控件的位置和大小时更加得灵活,功能更加强大。...当相同方向上(横向或纵向),控件两边同时向ConstraintLayout添加约束,情况就会像图 4所示的这样。 ?...这里说明一下:如果在居中方向上(横向或纵向)控件的尺寸和ConstraintLayout的尺寸一样,那么就无所谓居中了,此时约束的存在是没有意义的。...Fig. 7 - 尺寸约束 前两种方式和其他布局的用法相同,最后一种是通过填充约束来重新设置控件的尺寸(如图 7,(a)是wrap_content,(b)是0dp)。...W,或H,以确定受约束的是高还是宽,然后受约束的一方根据不受约束的一方,按照比例计算自己的尺寸。

    1.1K30

    一文看懂ConstraintLayout的用法

    在最新的Google Android开发文档中是推荐使用 ConstraintLayout的,下面来看看具体用法。...设置百分比布局 当 ConstraintLayout 子布局的宽或高设置为0dp时,可以对宽或高设置百分比,例如设置一个按钮的宽是屏幕宽度的30%,那么可以这样处理: ConstraintLayout...="1:1" /> 当 layout_width与 layout_height都设置为0dp时,通过 app:layout_constraintDimensionRatio 指定宽高的比例。...0x07 Chains 在横轴或或者数轴上的控件相互约束时,可以组成一个链式约束。 ? 图9中,A控件与B控件相互约束,这就是一个简单的链式约束。 链头 ?...Chain Style 可以通过 layout_constraintHorizontal_chainStyle或 layout_constraintVertical_chainStyle设置链式控件的样式

    83830

    布局大杀器—ConstraintLayout

    引入 简介:约束布局(ConstraintLayout) 是一个 ViewGroup,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整 View。...说明:本博文是以 ConstraintLayout1.1.3为基础编写,不同的依赖版本有不同的属性和方法,如果依照博文编写 demo发现编译出错,请自行研究更新版本的约束布局或者与博主版本保持一致。...//Android Studio2.3起,官方的模板默认使用ConstraintLayout。...parent" //View右边对齐parent右边 layout_constraintTop_toTopOf="parent" //View上边对齐parent上边 除此之外还有几个其他的常用属性...ConstraintLayout 子布局的宽或高设置为0dp时,可以对宽或高设置百分比 <Button android:layout_width="0dp" android

    1.7K41

    VV-安卓布局总汇篇

    零、前言 一直以来觉得布局也没什么好讲的,特别是自从有了ConstraintLayout,拖拖接接基本上就行了 最近写个播放器,感觉布局并不是我想的这样简单,有的时候拖不出想要的结果,布局代码改不好也挺尴尬...脱出来的控件毕竟是IDE的智商,一个控件属性非常多,可读性不怎样,所以在此总结一下安卓的布局 插播一段感悟:我经常思考工具与使用者间的关系: 用工具和会用工具之差异:良庖岁更刀,割也;族庖月更刀...庖丁的匠心独运是我追求的境界: 吾生也有涯,而知也无涯,以有涯随无涯 愿君且行且珍惜。 本文测试图标是svg的安卓xml版,通过精心挑选,如下: ?...比例宽高.png ---- 5.控件链 还记得是结构的双链表吧,除首位节点,其他都持有前后的引用,这里约束也相似 也能实现一个接着一个,后面有连到前面的结构。...> ---- 后记:捷文规范 1.本文成长记录及勘误表 项目源码 日期 备注 V0.1--无 2018-11-2 VV-安卓布局总汇篇 2.更多关于我 笔名 QQ 微信 爱好 张风捷特烈 1981462002

    78840

    ConstraintLayout使用场景必知必会

    ConstraintLayout的布局优越性已经不用再强调了,通过ConstraintLayout的约束思想,可以很方便的解决一些之前需要写很复杂的动态代码才能完成的效果。...早在2016年,我就已经逐渐将项目中的布局进行约束化,采用ConstraintLayout来替换原有布局,同时对ConstraintLayout的基础使用,进行了总结,感兴趣的入门开发者可以参考下面的文章...hl=zh-cn 当然,ConstraintLayout并不是解决所有布局问题的银弹,在下面的这些场景下使用,可以算得上ConstraintLayout的最佳实践,可以达到事半功倍的效果。...总结 ConstraintLayout的学习曲线比较陡峭,入门很简单,想要写好,却是很难的,大部分的开发者在经过一段时间的学习后,都可以上手进行布局,但是遇到一些比较复杂的业务场景时,就很难将ConstraintLayout...修改ConstraintLayout时,先理清约束关系再下手,避免上手就拖组件,导致剪不断理还乱 再次重申,ConstraintLayout并不是Android布局的银弹,合适的场景选择合适的布局方式

    1.4K20

    ConstraintLayout概要

    简介 约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。...尺寸约束 控件的尺寸可以通过四种不同方式指定: 使用指定的尺寸 使用wrap_content,让控件自己计算大小 当控件的高度或宽度为wrap_content时,可以使用下列属性来控制最大、最小的高度或宽度...match_parent 宽高比 当宽或高至少有一个尺寸被设置为0dp时,可以通过属性layout_constraintDimensionRatio设置宽高比 宽设置为0dp,宽高比设置为1:1,这个时候...TextView1是一个正方形 除此之外,在设置宽高比的值的时候,还可以在前面加W或H,分别指定宽度或高度限制。...例如: app:layout_constraintDimensionRatio="H,2:3"指的是 高:宽=2:3 app:layout_constraintDimensionRatio="W,2:

    1K32
    领券