android – 使用ConstraintLayout均匀间隔视图

android – 使用ConstraintLayout均匀间隔视图,第1张

概述LinearLayout的常见用途是均匀分隔(重量)视图,例如: 如何使用新的ConstraintLayout实现这样的均匀间隔视图? ConstraintLayout链接供参考:blog post,I/O session video 使用ConstraintLayout有两种方法可以实现此目的: Chains和 Guidelines.要使用链,请确保使用ConstraintLayout Beta @L_301_0@的常见用途是均匀分隔(重量)视图,例如:

如何使用新的ConstraintLayout实现这样的均匀间隔视图?

ConstraintLayout链接供参考:blog post,I/O session video

解决方法 使用ConstraintLayout有两种方法可以实现此目的: Chains和 Guidelines.要使用链,请确保使用ConstraintLayout Beta 3或更高版本,如果要在AndroID Studio中使用可视布局编辑器,请确保使用的是AndroID Studio 2.3 Beta 1或更新版本.

方法1 – 使用链

打开布局编辑器并正常添加小部件,根据需要添加父级约束.在这种情况下,我添加了两个带有约束的按钮到父级的底部和父级的一侧(左侧为“保存”按钮,右侧为“共享”按钮):

请注意,在此状态下,如果我翻转到横向视图,视图不会填充父级,而是锚定到角落:

通过Ctrl / Cmd单击或在视图周围拖出一个框来突出显示两个视图:

然后右键单击视图并选择“水平居中”:

这在视图之间建立了双向连接(这是链的定义方式).默认情况下,链样式是“spread”,即使没有包含XML属性也会应用它.坚持使用这种链式但将视图宽度设置为0dp可让视图填充可用空间,并在父级中均匀分布:

这在横向视图中更明显:

如果您希望跳过布局编辑器,生成的XML将如下所示:

<androID.support.constraint.ConstraintLayoutxmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:app="http://schemas.androID.com/apk/res-auto"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"><button    androID:ID="@+ID/button_save"    androID:layout_wIDth="0dp"    androID:layout_height="wrap_content"    androID:text="@string/button_save_text"    androID:layout_marginStart="8dp"    androID:layout_marginBottom="8dp"    androID:layout_marginEnd="4dp"    app:layout_constraintleft_toleftOf="parent"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintRight_toleftOf="@+ID/button_share"    app:layout_constraintHorizontal_chainStyle="spread" /><button    androID:ID="@+ID/button_share"    androID:layout_wIDth="0dp"    androID:layout_height="wrap_content"    androID:text="@string/button_share_text"    androID:layout_marginStart="4dp"    androID:layout_marginEnd="8dp"    androID:layout_marginBottom="8dp"    app:layout_constraintleft_toRightOf="@+ID/button_save"    app:layout_constraintRight_toRightOf="parent"    app:layout_constraintBottom_toBottomOf="parent" /></androID.support.constraint.ConstraintLayout>

细节:

>将每个项目的宽度设置为0dp或MATCH_CONSTRAINT让视图填充父项(可选)
>视图必须双向链接(保存按钮链接到共享按钮,共享按钮链接左侧保存按钮),这将在选择“水平居中”时通过布局编辑器自动发生
>链中的第一个视图可以通过layout_constraintHorizo​​ntal_chainStyle指定链样式,有关各种链样式,请参阅documentation,如果省略链样式,则默认为“spread”
>可以通过layout_constraintHorizo​​ntal_weight调整链的权重
>此示例用于水平链,垂直链具有相应的属性

方法2 – 使用指南

在编辑器中打开布局,然后单击指南按钮:

然后选择“添加垂直指南”:

将出现一个新的指南,默认情况下,它可能会以相对值(左侧箭头表示)锚定在左侧:

单击向左箭头将其切换为百分比值,然后将指南拖动到50%标记:

该指南现在可以用作其他视图的锚点.在我的示例中,我将保存按钮的右侧和共享按钮的左侧附加到指南:

如果希望视图填满可用空间,则约束应设置为“任意大小”(水平运行的波浪线):

(这与将layout_wIDth设置为0dp相同).

也可以很容易地使用XML创建指南,而不是使用布局编辑器:

<androID.support.constraint.GuIDeline    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:ID="@+ID/guIDeline"    androID:orIEntation="vertical"    app:layout_constraintGuIDe_percent="0.5" />
总结

以上是内存溢出为你收集整理的android – 使用ConstraintLayout均匀间隔视图全部内容,希望文章能够帮你解决android – 使用ConstraintLayout均匀间隔视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存