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

强大的ConstraintLayout:使用ConstraintLayout打造响应式UI

,第二行文本控件的宽度设置是:wrap_content,在默认情况下,文本超长时,控件的宽度会超过约束边界,即上图这样的情况: [width over constraint edge] 要限制控件宽度在约束边界内...在这两个布局里,都难以表达“在尽可能保证中部预览区域比例为1:1的情况下,优先调节底部面板的高度,直到高度达到临界值,再回过头来调整中部预览视频区域”这个意图。...: 尽可能保证中部视频预览区1:1 优先调节底部区域,再调节中部视频预览区域 这两个关键约束条件,确保所需布局效果的呈现。...不过,这个实现里,中部视频预览区并非实际想要的预览区,实际想要的部分,是包含了两侧留白的部分。 一开始,笔者一直致力于将中间的布局的边界,在保留当前效果的情况下,拓展到约束边界,最终未果。...明了了原因的所在,怎么修复?约束关系的指定,只能指向一个,对这个场景而言,变成了两个:在顶部/底部区域可见时,约束指向顶部/底部区域;在顶部/底部区域不可见时,约束指向父布局。

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

    项目需求讨论 — ConstraintLayout 详细使用教程

    前言 大家都知道AS在写相关布局的时候,有二种方式: 1. 拖拽方式 ?...正文 控件如何确定自己的位置 1.直接确定控件左上角的坐标 在约束布局中,一个控件如何来确定自己的位置呢,有人可能说直接写死让它在界面的(XXX,XXX)位置不就好了么。...这时候因为不是单纯的一边对齐,而是相同直线上的二个边都被约束了。所以按钮无法紧靠着左边的或者右边的其中一个边界,所以这时候,这个按钮就会居于二个约束边界的中间位置。如下图所示: ?...但是在某些情况下,您可能需要使用WRAP_CONTENT,但仍然执行约束来限制生成的尺寸值。...,而按钮的宽度将匹配父布局的约束。

    1.7K20

    【Android从零单排系列三十四】《Android布局介绍——ConstraintLayout》

    这意味着你可以根据需要自由调整视图的位置,并确保在不同屏幕尺寸或设备方向下的正确布局。 性能优化:ConstraintLayout针对性能进行了优化,可以减少布局层次以及视图的嵌套。...你可以通过拖拽和调整视图的边界、连接线和约束条件来轻松创建和修改布局。 ConstraintLayout的工作原理是通过设置视图之间的宽度、高度和相对位置的约束条件来实现。...开发者可以使用约束条件(如layout_constraintLeft_toLeftOf、layout_constraintTop_toTopOf等)来定义视图与其他视图或边界的关系,从而精确控制视图在布局中的位置和大小...完善布局:根据设计需求,继续设置其他视图的约束条件,以达到期望的布局效果。可以使用app:layout_constraint...属性来设置各种约束条件,如边界对齐、居中对齐、权重比例等。...开发者可以使用约束条件(如layout_constraintLeft_toLeftOf、layout_constraintTop_toTopOf等)来定义视图与其他视图或边界的关系,从而精确控制视图在布局中的位置和大小

    45520

    【约束布局】ConstraintLayout 约束布局 ( 简介 | 引入依赖 | 基本操作 | 垂直定位约束 | 角度定位约束 | 基线约束 )

    引入 约束 布局 ( 1 ) 约束性布局 作用 和 简介 约束性布局简介 ( 基于官方文档翻译 ) : 1.作用 : ConstraintLayout 布局 可用于 构建 大型的复杂的布局 , 并且该布局可以只有一层嵌套...约束 简介 ( 1 ) 约束个数要求 ConstraintLayout 布局中 单个组件 约束个数要求 : 1.约束要求 : 在 ConstraintLayout 中 设置 View 的位置 , 至少为...3.原理 : 每个 约束 ( Constraint ) 都定义了 该 View 沿水平 或 垂直 方向的位置 , 因此 每个 View 都必须在 水平 或 垂直 方向上 含有一个约束 , 大部分情况下...) : 如下图 , 没有为 C 组件设置 垂直约束 , 在布局编辑器中 其 在 A 组件的下方显示 , 但是 在设备上运行时 , C 组件 左右 与 A 组件对齐 , 但是其显示在 屏幕的 最顶端 ,...: 4.layout_constraintBottom_toBottomOf : ---- ( 4 ) 开始 结束 约束 图解 开始 结束 约束 图解 : 该种情况下 , 与 水平方向的

    5.9K41

    再学一次ConstraintLayout 一些新特性

    平时使用ConstraintLayout,断断续续的,基本都是在自己的小demo里面使用.公司的项目暂时还没有使用.这次公司项目需要大改,我决定用上这个nice的布局.减少嵌套(之前的老代码,实在是嵌套得太深了...首先,ConstraintLayout是一个新的布局,它是直接继承自ViewGroup的,所以在兼容性方面是非常好的.官方称可以兼容到API 9.可以放心食用....image.png Bias(偏向某一边) 上面的水平居中,是使用的与父亲左侧对齐+与父亲右侧对齐. 可以理解为左右的有一种约束力,默认情况下,左右的力度是一样大的,那么view就居中了....image.png 九、WRAP_CONTENT:强制约束(在1.1中添加) 当一个view的宽或高,设置成wrap_content时,如果里面的内容实在特别宽的时候,他的约束会出现问题.我们来看一个小栗子...在这种情况下,系统设置满足所有约束的最大尺寸并保持指定的纵横比。要根据另一个特定边的尺寸限制一个特定边,可以预先附加W,“或” H,分别约束宽度或高度。

    1.7K40

    Android ConstraintLayout布局详解

    Constraint Layout是Google在2016年的Google I/O大会上提出的一个可以灵活控制子控件的位置和大小的新布局。并且其号称可以实现布局最大程度的扁平化。...下面列举几点来表明ConstraintLayout是如何能解决这个矛盾,它的强大之处。 Constraint Layout可以在不嵌套view group的情况下实现非常庞大、复杂的布局。..." 这两行代码,这两行代码就是控制我们布局中控件的位置的,几乎每个控件都有,这个属性的字面意思很好理解,约束控件的左边在“parent”的左边,约束控件的上边在“parent”的上边。...对于播放按钮,代码意思是约束控件的下边和parent的下边一致(注意我这里的ConstraintLayout的height设置的是wrap_content),约束控件的上边和parent的上边一致。...通过上面的代码啊,我们注意到这三个控件彼此都互相约束着,像button-one在two的左边,two在one右边这样。这种两两间彼此约束就构成了横向的链。

    1.7K41

    【约束布局】ConstraintLayout 组件可见性 View.GONE 处理 与 Margin 属性 ( 约束布局可见性处理 | goneMargin 属性 )

    作用效果 : 设置 Margin 属性会强制在 被约束的边 ( 源边 Source Side ) 和 约束到的位置 之间 填充指定尺寸的空间 ; 3.Margin 属性类型及取值范围 : Margin...可见性改变后的行为处理 ( Visibility Behavior ) 约束布局 组件 可见性说明 : 1.讨论情况 : 约束布局中 , 当组件被设置成 View.GONE 可见性时 , 针对该组件的处理方式...; 2.通常处理方案 ( 其它布局 ) : 被设置成 View.GONE 属性的组件 , 一般情况下进行如下处理 : ① 取消显示 : 首先其先取消显示 ; ② 布局移除 : 然后将该组件从布局中移除...; ③ 尺寸不变 : 但组件的实际的尺寸不会被修改 ; 3.约束布局消失的组件处理方式 : ① 取消显示 : 该组件消失 , 不可见 ; ② 布局保留 : 该组件仍然是布局中的一部分 ; ③ 尺寸修改...: 7.组件设置 GONE 属性后的说明 : ① 可见性与宽高 : 目标组件仍然在布局中存在 , 只是变成了一个点 , 宽高变成 0 , 不可见 ; ② 约束存在 : 目标组件的约束仍然有效

    1.6K30

    Android 约束布局ConstraintLayout1.1.0 版详解

    Enforcing constraints 在 1.1 版本之前,如果将控件的尺寸设置为了 WRAP_CONTENT,那么对控件设置约束(如:minWidth 等)是不起作用的。...那么强制约束(Enforcing constraints)的作用就是,在控件被设置 WRAP_CONTENT 的情况下,使约束依然生效。...在设置值时,可以设置多个,如: app:layout_optimizationLevel="direct|barrier|dimensions" Barrier 当我们在布局时,有时候就会遇到布局会随着数据的多少而改变大小的情况...(图片来自官方) 通过上图就可以发现,当在 A、B 控件的大小都不确定的情况下, View3 以谁作为约束对象都不对。...这是个非常好用的东东,和 GuideLine 一样,它是一个虚拟的 View,对界面是不可见的。目的就是辅助布局。

    1.1K40

    【约束布局】ConstraintSet 约束集 ( 简介 | 约束属性集合 | 约束集初始化 | 约束集应用到布局中 | 关键帧动画 | TransitionManager 使用 )

    : 约束集中封装了 每个组件 的所有 约束布局 属性 ; ③ 约束集应用效果 : 约束布局 ( ConstraintLayout ) 应用 约束集 ( ConstraintSet ) 时 , 约束布局中的所有组件都会按照约束集中的约束属性进行重新布局绘制...获取某组件的约束属性 : 约束集 ( ConstraintSet ) 目前只提供了设置某组件的 约束属性 , 无法获取组件的 约束属性 ; 4 ....传统属性 与 约束属性 : 这里将属性分为 传统属性 ( Custom Attributes ) , 约束属性 , 约束属性是只有在 约束布局中使用的属性 , 其它的非约束属性就是传统属性 , 如 宽高..., 缩放 , 等属性 , 可以使用关键帧动画生成过渡帧 ; ③ 不适配属性 : 组件的 颜色 , 透明度 , 等属性 , 无法使用关键帧动画生成过渡帧 ; VIII ....在 约束布局 中 , 应用约束集属性 ( 设置 关键帧动画的 结束帧 ) constraintSet.applyTo(constraintLayout); } } 4 .

    3.2K10

    细细品读!深入浅出,官方文档看ConstraintLayout

    新特性 相对于传统布局,ConstraintLayout在以下方面提供了一些新的特性: 相对定位 外边距 居中和倾向 可见性的表现 尺寸约束 Chain 辅助工具 接下来就这些新特性进行详细了解。...一般情况下,GONG控件是不可见的,且不再是布局的一部分,但是在布局计算上,ConstraintLayout与传统布局有一个很重要的区别: 传统布局下,GONE控件的尺寸会被认为是0(当做点来处理) 在...Fig. 6 - 可见时的表现 这种特殊的行为让我们在无需打乱布局情况下,在标记GONE控件的地方构建布局,这样的做法对于做简单的布局动画很有用。...Fig. 7 - 尺寸约束 前两种方式和其他布局的用法相同,最后一种是通过填充约束来重新设置控件的尺寸(如图 7,(a)是wrap_content,(b)是0dp)。...敲黑板,划重点:一般MATCH_PARENT在ConstraintLayout布局下是不支持的,但是在简单的布局结构(如控件的约束只与ConstraintLayout关联)下,MATCH_PARENT是被支持的

    98830

    ConstraintLayout使用场景必知必会

    这样的布局,在以往的布局方式下,都需要通过动态计算后修改高度来实现,但是通过ConstraintLayout,则可以直接在XML中实现。...角度布局 通过角度的方式来对元素进行排列,在传统布局中,只能通过FrameLayout,并通过动态计算的方式,将角度换算为边距的方式来布局,但通过ConstraintLayout,则变的非常简单。...image-20201231144005478 多组件协同约束 考虑下面这个场景,多个组件的宽度不定,需要取最大宽度的组件在布局中展示,例如下面这个例子。...容器约束下的边界约束 考虑下面这个场景,中间的TextView被约束在两边的组件中,如下所示。 ? image-20201231145935870 约束空间,这时候,如果要求TextView只显示文字大小,类似设置wrap_content的效果,但是在文字长的时候,又必须被边缘约束,所以又不能设置

    1.3K20

    笔记74 | 学习掌握ConstraintLayout的基本属性

    圆形定位使用其他布局是很难实现的(除自定义外),该功能在实际的开发中用的并不多,可以用来实现类似钟表的效果。该功能只不过是约束布局的冰山一角,且往下看。...Several additional modifiers are available 在约束布局中宽高的维度 match_parent 被 0dp 代替,默认生成的大小占所有的可用空间。...5、约束之百分比布局 百分比布局大家肯定不会陌生,由于 Android的碎片化非常严重,那么屏幕适配将是一件非常令人头疼的事情,百分比适配也就应运而生,约束布局同样也可以实现百分比的功能,并且更加强大,...在约束布局中,可以使用属性 constraint_referenced_ids属性来引用多个带约束的组件,从而将它们看作一个整体,Barrier 的介入可以完成很多其他布局不能完成的功能,如下: 开发中有这样的一个需求...姓名,联系方式位于 A 区域(随着文本的宽度变化 A 区域的宽度也随之变化),B 区域在 A 区域的右侧。使用传统的布局方式实现嵌套过多,布局不够优雅。

    1.3K50

    Android经典实战之约束布局ConstraintLayout的实用技巧和经验

    它通过约束系统将一个 View 的位置和大小与其他 View 或父布局联系起来,使得布局代码更加简洁且易于维护。...ConstraintLayout 概述 ConstraintLayout 是一种基于约束的布局方式,与传统的布局(如 LinearLayout、RelativeLayout)相比,具有更高的灵活性和性能...它允许你在视图之间创建多种多样的约束条件,比如对齐、比例、偏移等。 基本用法 要使用 ConstraintLayout 需要在布局文件中声明它,通常使用 XML 文件来定义约束: 的左右边缘约束到父布局左右边缘,顶部和底部分别约束到父布局顶部和底部,这样它就会在父布局中居中显示。...,这些约束可以是父布局或者其他视图的边缘。

    29910

    Android开发笔记(一百四十九)约束布局ConstraintLayout

    约束布局正是为了解决这些问题应运而生,它兼顾灵活性和高效率,可以看作是相对布局的升级版,在很大程度上改善了Android的用户体验。...开发者使用约束布局之时,有多种手段往该布局内添加和拖动控件,既能像原型设计软件AxureRP那样在画板上任意拖曳控件,也能像传统布局那样在XML文件中调整控件布局,还能在代码中动态修改控件对象的位置状态...在XML文件中调整控件布局 传统布局如线性布局、相对布局基本是在XML文件中手工添加控件节点,约束布局当然也允许在布局文件中指定控件的相对位置,这跟相对布局内部的控件位置调整类似,只不过用来表示位置的属性换了个名字罢了...在代码中添加控件 若要利用代码给约束布局动态添加控件,则可照常调用addView方法,不同之处在于,新控件的布局参数必须使用约束布局的布局参数,即ConstraintLayout.LayoutParams...,无法单独设置某个方向的间距; 3、布局参数在启用时立即生效,没有渐变的过程,让用户觉得很突兀。

    2.1K20

    Constraintlayout约束布局三问

    Constraintlayout——约束布局,作为Jetpack的一个组件推出。今天的面试三问就是关于布局的: 说说constraintlayout的主要特性,为什么会设计出这一种布局?...ConstraintLayout名字叫约束布局,跟RelativeLayout相对布局有点像,主要使用约束的方式来指定各个控件的位置和关系,但是又远远比RelativeLayout强大。...第二就是让可视化操作更加立体方便,以前在可视化界面操作view难免还是比较不方便,拖着拖着就变成了固定距离。ConstraintLayout就方便多了,设置好约束关系即可。...="0.3" 通过该属性可以设置在父布局中显示的位置,按比例显示,比如0.3就代表在3/10的位置。...比如有个需求,是要我的view底部位置在布局的中间,那么就可以在中间画一条辅助线,然后view设置为辅助线之上位置显示即可 <android.support.constraint.Guideline

    1.6K10

    ConstraintLayout概要

    简介 约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。...在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多。 ConstraintLayout减少层级从而提升渲染的时间。...垂直偏移 说明 layout_constraintHorizontal_bias赋一个范围为 0-1 的值 假如赋值为0,则TextView1在布局的最左侧 假如赋值为1,则TextView1在布局的最右侧...chain:优化链约束 dimensions:优化尺寸测量 Barrier 假设有3个控件ABC,C在AB的右边,但是AB的宽是不固定的,这个时候C无论约束在A的右边或者B的右边都不对。...Guideline Guildline像辅助线一样,在预览的时候帮助你完成布局(不会显示在界面上)。

    91232

    【约束布局】ConstraintLayout 引导线 Guideline 约束 ( 简介 | 可视化操作 | 属性 | 水平引导线 | 垂直引导线 | 开始结束尺寸 | 百分比位置 | 约束组件 )

    ; ③ 不可见 : Guideline 引导线是不可见的 , 用户在界面中看不到引导线 ; ④ 引导线定位方式 : 使用 dp 单位的尺寸值表示相对开始或结束的位置 , 或百分比值 , 基于布局的边缘...Guideline 引导线 可视化操作 ---- Guideline 引导线 可视化工具添加 : 在 布局 设计 ( Design ) 视图中 , 点击 Guidelines 按钮 , 会弹出下面的下拉菜单...Guideline 引导线 属性 简介 : Guideline 引导线在 Constraintlayout 约束布局中 , 需要为其设置两个属性 , 分别是 使用 “android:orientation...Guideline 引导线 约束 简介 : 在 Constraintlayout 约束布局中使用 Guideline 引导线 约束其它组件 , 很简单 , 只要被约束的组件 ( 非 引导线 的其它组件...代码示例 : 在布局中定义了 6 条引导线 , 分别是 水平引导线 和 垂直引导线 与 3 种对应的引导线设置方式 ; <?

    4K10

    ConstraintLayout使用汇总

    在这里我要向大家介绍ConstraintLayout,它是一种布局方法,可以帮助我们在对Android进行布局时减少对布局层次的嵌套,进而提高app的性能。...它同时支持LinearLayout与RelativeLayout的所用特性。同时它完全通过约束来减少布局的嵌套。意思就是基本上最外层只需要一个ConstraintLayout节点就可以了。...*基本类似,只不过它的所以约束的对象不同而已,为了实现对父布局的依赖,这里统一都是parent。...,不同的是它就约束对象的,看如下图:如果有这么一种需求:tv3始终在tv1与tv2的最近右边,但tv1与tv2的宽度的不看预期的,即可能tv1更长或者tv2更长。...ConstraintLayout给出了它的答案,就是Group。它的作用就是对多个view进行分组操作,当然在布局中也是不可见的。

    84720
    领券