如何使用新的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_constraintHorizontal_chainStyle指定链样式,有关各种链样式,请参阅documentation,如果省略链样式,则默认为“spread”
>可以通过layout_constraintHorizontal_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均匀间隔视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)