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

Android ConstraintLayout -如何创建空间不均匀的链条?

Android ConstraintLayout是一种灵活的布局容器,可以帮助开发者创建复杂的界面布局。在ConstraintLayout中,可以使用链条(Chains)来控制一组视图的相对位置和大小。

要创建空间不均匀的链条,可以按照以下步骤进行操作:

  1. 首先,在XML布局文件中,将需要创建链条的视图按照顺序放置在ConstraintLayout中。
  2. 然后,通过设置视图之间的约束关系来创建链条。可以使用以下属性来定义约束关系:
    • layout_constraintLeft_toLeftOf:将视图的左边缘约束到另一个视图的左边缘。
    • layout_constraintRight_toRightOf:将视图的右边缘约束到另一个视图的右边缘。
    • layout_constraintTop_toTopOf:将视图的顶部边缘约束到另一个视图的顶部边缘。
    • layout_constraintBottom_toBottomOf:将视图的底部边缘约束到另一个视图的底部边缘。
    • 通过设置不同的约束关系,可以实现空间不均匀的链条效果。
  3. 可以使用以下属性来调整链条的样式和行为:
    • layout_constraintHorizontal_chainStyle:定义水平链条的样式。可以设置为spread、spread_inside、packed三种模式之一。
    • layout_constraintVertical_chainStyle:定义垂直链条的样式。可以设置为spread、spread_inside、packed三种模式之一。
    • layout_constraintHorizontal_bias:定义水平链条中视图的偏移比例。可以设置为0到1之间的值,0表示靠近起始位置,1表示靠近结束位置。
    • layout_constraintVertical_bias:定义垂直链条中视图的偏移比例。可以设置为0到1之间的值,0表示靠近起始位置,1表示靠近结束位置。
    • 通过调整这些属性的值,可以实现不同样式的链条布局。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 布局大杀器—ConstraintLayout

    //Android Studio2.3起,官方模板默认使用ConstraintLayout。...如何做到呢?上面四个属性顾名思义都指定了 TextView与 Parent(父布局)关系,约束布局如果不指定水平和竖直方向百分比,默认是50%,所以会居中。...ConstraintLayout 子布局宽或高设置为0dp时,可以对宽或高设置百分比 <Button android:layout_width="0dp" android...这个属性有点像 LinearLayout中 weight 属性平分布局。使用此属性,通常是权重分配不满足需求,但是又需要居中或者分配 View空间 先放一个官方解释示例图 ?...使用此属性之前,需要把你即将连成链条View彼此之间建立关联关系,水平方向则是控件彼此左右关联,竖直方向则是上下关联,每相邻两个View之间必须紧紧关联ID。

    1.6K30

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

    ConstraintLayout基本介绍 ConstraintLayoutAndroid一种灵活且强大布局容器。...它可以帮助开发者在用户界面上创建复杂布局,并提供了精确控制视图之间关系和位置能力。...你可以通过拖拽和调整视图边界、连接线和约束条件来轻松创建和修改布局。 ConstraintLayout工作原理是通过设置视图之间宽度、高度和相对位置约束条件来实现。...辅助属性: app:layout_constraintGuide_percent:在容器内创建一个辅助线,并指定其相对位置百分比。用于对齐其他视图,而不需要真实存在视图。...四 ConstraintLayout简单案例 以下是一个简单ConstraintLayout案例,展示了如何使用ConstraintLayout来排列和对齐视图: <?

    38920

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

    介绍 ConstraintLayout又称约束布局,是谷歌在2016年开发者大会上推出,之后在Android Studio上成为了默认布局,该布局能减少布局层级嵌套,我们都知道,View嵌套越多...3、隐藏空间设置边距 ConstraintLayout中有以下多种这样属性: layout_goneMarginStart layout_goneMarginEnd layout_goneMarginLeft...> 相信大多数老铁都会这么写,那么我们现在来看看不正经写法: 1 2 3 <Button 4...8、Chains(链) 链条在同一方向上(水平或者垂直)为一组互相关联控件作统一管理,并且链由链头(链第一个元素)设置属性控制,链头是水平链最左侧元素,是垂直链最顶部元素。...模式:类似于SPREAD,但链端点不会分散 `CHAIN_PACKED`模式:链条元素将被捆绑在一起。

    1.3K30

    Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?

    Compose 布局方式 Android 目前布局 Layout 有许多:LinearLayout 线性布局、RelativeLayout 相对布局、ConstraintLayout 约束布局、FrameLayout...ConstraintLayout 约束布局 众所周知,Android View 体系中官方最推荐布局是约束布局 —— ConstraintLayout,以致于在默认新建布局时就给你初始化成 ConstraintLayout...不受约束; fillToConstraints:布局大小将展开填充由布局约束所限制空间。...也就是说,这个属性是先看看布局约束所限制空间有多大,然后再将该子元素填充到这个有约束空间中; preferredValue:布局大小是一个固定值,并受布局约束影响; value:布局大小是一个固定值...: Spread:所有子元素平均分布在父布局空间中,是默认类型; SpreadInside:第一个和最后一个分布在链条两端,其余子元素平均分布剩下空间; Packed:所有子元素打包在一起,并放在链条中间

    3.2K31

    ConstraintLayout优势在哪

    | 导语 ConstraintLayoutAndroid Jetpack里引入全新布局类,可以理解为RelativeLayout+LinearLayout混合强化版,同时新版Android Studio...使用ConstraintLayout,可以很方便地在一个层级上实现复杂布局,功能也很完善,是Android官方目前非常重视一个Layout(替代以前RelativeLayout),因此ConstraintLayout...:1.1.3' 关于ConstraintLayout详细用法,可以参考网上资料和Android官方文档(https://developer.android.google.cn/training...Chain Chain即为链条,可以实现多个子View按一定比例并排在一起,ConstraintLayout借助此功能,可以实现LinearLayout大部分效果。...总体来看,ConstraintLayoutAndroid官方很重视且逐步在推广一个标准布局,而且和iOSAutoLayout布局方式也很相似,相信有比较光明未来!

    3.2K51

    ConstraintLayout 之 Guideline、Barrier、Chains和Groups

    其中一些功能需要使用Android Studio 3.0 Beta 版和ConstraintLayoutbeta版本。...Barrier可以是垂直或水平,并且可以创建到引用视图顶部、底部、左侧或右侧。 以下示例可以看出,当调整TextView大小时,Barrier调整其大小和受限视图移动。 ?...Chains 链允许您控制元素之间空间以及元素如何使用空间。要创建链,需要选择要组成链一部分元素,然后右键单击“链”-“创建水平/垂直链”。 ?...constraintlayout_android_chains.gif 然后您就可以查看链不同模式了。...不要把这与Android普通ViewGroups混淆。ConstraintLayout一个组仅包含对视图ID引用,而不将组合中视图嵌套。

    1.4K50

    再学一次ConstraintLayout 一些新特性

    平时使用ConstraintLayout,断断续续,基本都是在自己小demo里面使用.公司项目暂时还没有使用.这次公司项目需要大改,我决定用上这个nice布局.减少嵌套(之前老代码,实在是嵌套得太深了...首先,ConstraintLayout是一个新布局,它是直接继承自ViewGroup,所以在兼容性方面是非常好.官方称可以兼容到API 9.可以放心食用....十、MATCH_CONSTRAINT尺寸(在1.1中添加) 当一个view长宽设置为MATCH_CONSTRAINT(即0dp)时,默认是使该view占用所有的可用空间....- 类似,但链端点不会分散 CHAIN_PACKED - 链条元素将被包装在一起。...image.png 十三、Guideline 这是一个虚拟视图 Guideline可以创建相对于ConstraintLayout水平或者垂直准线.

    1.7K40

    深入浅出,官方文档看ConstraintLayout

    相对定位 相对定位是在ConstraintLayout创建布局最基本构建块,也就是一个控件相对于另一个控件进行定位,可以从横向、纵向添加约束关系,用到边分别有: 横向:Left、Right、Start...在SPREAD CHAIN中,外边距会从已经分配好空间中去掉。...MATCH_CONSTRAINT,那么控件将会把所有剩余空间均分后“吃掉” CHAIN_SPREAD_INSIDE Chain两边元素贴着父容器,其他元素在剩余空间中采用CHAIN_SPREAD...Fig. 10 - Chain样式 带权重Chain 默认Chain会在空间里平均散开。如果其中有一个或多个元素使用了MATCH_CONSTRAINT属性,那么他们会将剩余空间平均填满。...属性layout_constraintHorizontal_height和layout_constraintVertical_weight控制使用MATCH_CONSTRAINT元素如何均分空间

    96430

    ConstraintLayout2.0进阶之路-欢迎新同学

    /constraint-layout VirtualLayouts ConstraintLayout1.1首次引入了Barriers和Guidelines这样ConstraintHelper,它们是创建了一个不可见...Flow Flow可以说是Chains强化版,它是一种新VirtualLayouts,可以用来构建流式排版效果,当出现空间不足情况时,它能够自动换行,或者是自动延展到屏幕另一区域。...当你需要对多个View进行流式布局,或者不确定其布局空间实际尺寸时,就可以使用Flow来实现。借助官网上一张图,可以很方便了解Flow使用。 ?...是ConstraintLayout一个非常重要部分,你可以认为ConstraintHelper是一个用于记录标记ViewsHelper,它并没有创建布局,而是引用了指定Views,并针对这个整体实现一些效果...ConstraintHelper来实现,并通过重写上面的一些回调,来实现布局修改,下面通过一个简单例子来演示下如何创建自定义ConstraintHelper,代码如下所示。

    82311

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

    half_h" android:text="2" /> 可以直观看到,文本控件直接占据了一半空间,而非像我们所需要在布局内横向居中。...对于这种三个控件竖直排列场景,用竖直方向链条Chain来实现; Chain需要设置为spread_inside,使得两端控件对齐到边缘; 对于中部视频预览控件,宽高设置为0dp,即MATCH_CONSTRAINT...由于其他两个控件没有设置这个约束,因此约束布局会在满足所有控件约束前提下,优先将剩余空间分配给底部预览区域(没有剩余空间?那就只有满足所有控件约束)。 完整布局代码如下: <?...根据官方文档,Barrier用来创建一个虚拟参考线,这条参考线是指定几个控件边缘,可选边缘有top、bottom、start、end。...思考题 最后,留个思考题,如何使用单层ConstraintLayout,实现如下UI。

    3K21

    深入浅出,官方文档看ConstraintLayout

    Android新特性介绍,ConstraintLayout完全解析》,受其感染,写了一篇《未来布局之星——ConstraintLayout》,回过头来看,感觉这一篇文章太注重可视化操作,于是去翻阅了一下...相对定位 相对定位是在ConstraintLayout创建布局最基本构建块,也就是一个控件相对于另一个控件进行定位,可以从横向、纵向添加约束关系,用到边分别有: 横向:Left、Right...尺寸约束 ConstraintLayout最小尺寸 ConstraintLayout本身可以定义自己最小尺寸: android:minWidth 设置布局最小宽度 android:minHeight...属性layout_constraintHorizontal_height和layout_constraintVertical_weight控制使用MATCH_CONSTRAINT元素如何均分空间。...https://developer.android.google.cn/reference/android/support/constraint/ConstraintLayout.html

    97840

    如何Android中避免创建不必要对象

    Android设备不像PC那样有着足够大内存,而且单个App占用内存实际上是比较小。所以避免创建不必要对象对于Android开发尤为重要。...然而,这样容器虽然使用起来方便,但也存在一些问题,就是他们会自动扩容,这其中不是创建对象,而是创建一个更大容器对象。这就意味这将占用更大内存空间。...,通常有如下几种方法 预估一个较大容量值,避免多次扩容 寻找替代数据结构,确保做到时间和空间平衡 用好LaunchMode 提到LaunchMode必然和Activity有关系。...不要过多创建线程 在android中,我们应该尽量避免在主线程中执行耗时操作,因而需要使用其他线程。...中如何避免创建多余对象总结.欢迎提出意见和观点,共同进步.

    2.5K20

    代码实验室--带你一步步理解使用 ConstraintLayout

    运行样例代码 首先, 我们来看看这个已经完成应用样子. 下载代码后, 这个指导书讲解了如何Android Studio打开完整样例应用....你应当会看到 constraint-layout 屏幕出现在模拟器或者已连接设备上. 常见问题 如何安装 Android Studio? 如何启用 USB 调试?...> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android...在下一节, 我们会学习如何创建 View 之间约束. 创建手工约束 要创建一个约束, 你需要在指定手柄上点击并按住鼠标, 然后拖到另一个控件约束手柄....推理引擎会基于诸如空间位置和大小之类各种因素尝试查找并创建最佳连接. 横向扩展空间以适应约束 纵向扩展空间以适应约束 重要: UI 生成启动默认启用"自动连接".

    2.7K60

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

    正文 控件如何确定自己位置 1.直接确定控件左上角坐标 在约束布局中,一个控件如何来确定自己位置呢,有人可能说直接写死让它在界面的(XXX,XXX)位置不就好了么。...,当控件设置为0dp时候(0dp称呼又叫match_constraint),默认行为是撑开(spread),占满可用空间,但是这个行为是可以用layout_constraintWidth_default...在 ConstraintLayout 1.0.x中,这个属性还可以把它设置为wrap。而到了1.1.x,它又有了一个新值:percent,允许我们设置控件占据可用空间百分比。...---- 链(Chains) 链在单个轴(水平或垂直)中提供类似组行为。 创建一个链: 如果一组小部件通过双向连接链接在一起,则认为它们是一个链,如下图所示,是一个具有二个控件最小链: ?...因此它用来写布局模版,也可以用来动态修改UI内容。 用作模版: 我们用Placeholder创建一个名为template.xml模版: ? 模版写好了我们来填充真正东西。

    1.7K20
    领券