写点什么

约束布局(ConstraintLayout)1

用户头像
Android架构
关注
发布于: 10 小时前

<Buttonandroid:id="@+id/btAge"android:layout_width="150dp"android:layout_height="wrap_content"app:layout_constraintTop_toBottomOf="@+id/btName" />


<android.support.constraint.Barrierandroid:id="@+id/barrier"android:layout_width="wrap_content"android:layout_height="wrap_content"app:barrierDirection="end"app:constraint_referenced_ids="btName,btAge" />


<Buttonandroid:id="@+id/btAddress"android:layout_width="120dp"android:layout_height="wrap_content"app:layout_constraintStart_toEndOf="@+id/barrier" />


这里 btAge 由具有 150dp 是大于的宽度 btName 具有 100dp 所以垒宽度 150dp 之后将设置的导线。在运行期间,如果宽度变化超过屏障,则会自动重新计算导线并进一步推移引用的 View。

分组(Group)

这是令很多人充满期待的功能。如果多个视图可见性(visibility )需要设置为显示或隐藏,用 Group 则可以轻松的完成。想想一个包含各种 View 的 ViewGroup,只需要设置 ViewGroup 的 visibility 为显示或隐藏,它的所有被包含的子 View 也会同时被显示或隐藏。现在使用 Group 就可以完成同样的需求,但他并不是一个 ViewGroup,它是在平面结构上的一个 Group,只需要引用相关 View 的 Id 即可。


<Buttonandroid:id="@+id/btCenter"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Center Button"android:textAllCaps="false"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" />


<Buttonandroid:id="@+id/btAlign"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Aligned Button"android:textAllCaps="false"app:layout_constraintCircle="@id/btCenter"app:layout_constraintCircleAngle="45"app:layout_constraintCircleRadius="120dp" />


<android.support.constraint.Groupandroid:id="@+id/group"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"app:constraint_referenced_ids="btAlign,btCenter" />

占位符(PlaceHolder)

它用于在屏幕上动态设置内容,


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


只需传递它的 id 即可将任何视图设置为占位符。如果视图与占位符在同一屏幕上存在,则其可见性将自动设置为消失。


< ImageViewandroid:id =“@ + id / iv_call”android:layout_width =“wrap_content”android:layout_height =“wrap_content”android:src =“@ drawable / ic_launcher_background” />


< android.support.constraint.Placeholderandroid:layout_width =“match_parent”android:layout_height =“100dp”app:content =“@ + id / iv_call”app:layout_constraintBottom_toBottomOf =“parent” />


以编程方式设置内容,请使用 placeholder.setContentId(viewId)

尺寸约束(Dimension constraints)

通常需要将视图宽度或高度保持为包裹内容(wrap content)而不是匹配约束(match constraint)或匹配父项(match parent),但不幸的是包裹内容会覆盖应用的约束,并且在宽度或高度更改时与约束重叠


在 1.1.0 版本中,这个问题可以通过使用


app:layout_constrainedWidth=”true”



app:layout_constrainedHeight=”true”


来解决,它所做的是强制约束,并让视图宽度/高度保持为包裹内容



<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello this is an example with constraint width"app:layout_constrainedWidth="true"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="@+id/guideline_50"/>

百分比约束

约束布局真正缺少的一件事就是能够按百分比定义宽度和高度。在百分比中定义宽度或高度对于创建富有表现力的 UI 来说非常有用,因为在移动设备或平板电脑上查看时,dp 中的宽度或高度并不能很好地工作。


但是现在可以使用


layout_constraintWidth_percent

layout_constraintHeight_percent


以百分比的形式定义宽度和高度**。**


注意

为了使用百分比来表示宽度和高度,尺寸应该是匹配约束(0dp),而

app:layout_constraintWidth_default =“percent

app:layout_constraintHeight_default =”percent“

需要设置为百分比形式< TextViewandroid:id =“@ + id / bt”android:layout_width =“0dp”android:layout_height =“wrap_content”android:text =“Hello 宽度百分比”

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
约束布局(ConstraintLayout)1