ConstraintLayout实战小技巧—实现布局跟随效果

简介: ConstraintLayout实战小技巧—实现布局跟随效果

ConstraintLayout实战小技巧—实现布局跟随效果

需求

有时UI小姐姐可能想要这样的效果,左侧的标题长度不定,标题后面跟着一个标签,根据标题长度不同,可以有以下几种样式:

①标题超过一行

②标题无内容

③标题不足一行

具体效果如下图

实现方式

效果有了,接下来是如何实现,不使用ConstraintLayout的前提下,我们使用常规的RelativeLayout、LinearLayout等布局去做,做到最后会发现不好做或者做不出来,真心难过。

幸好我们有ConstraintLayout(真香)。

怎么写呢?核心就是,先将元素串成一个chain,链的样式选择packed,这还不够,同时在给第一个元素设置下面两个属性:

app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"

大功告成,具体代码如下:

<android.support.constraint.ConstraintLayout
        android:id="@+id/cl"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="10dp"
        android:background="#eee"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        app:layout_constraintTop_toBottomOf="@id/tv_desc">

        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:gravity="center"
            android:maxLines="1"
            android:text="我是文本我是文本我是文本我是文本我是文本我是文本我是文本我是文本我是文本"
            android:textColor="#FDA413"
            android:textSize="12sp"
            app:layout_constrainedWidth="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintHorizontal_bias="0"
            app:layout_constraintHorizontal_chainStyle="packed"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@id/iv"
            app:layout_constraintTop_toTopOf="parent" />

        <ImageView
            android:id="@+id/iv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:src="@drawable/icon_birthday_cake"
            android:visibility="visible"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@id/tv"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:visibility="visible" />

    </android.support.constraint.ConstraintLayout>
相关文章
|
3月前
|
XML Android开发 数据安全/隐私保护
使用RelativeLayout布局Android界面
使用RelativeLayout布局Android界面
|
5月前
|
Android开发
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
530 0
|
5月前
|
Android开发 容器
Android开发,学习LinearLayout布局
Android开发,学习LinearLayout布局
70 0
|
5月前
|
XML Java Android开发
Android Studio中视图基础之设置视图的宽高、间距、对齐方式的讲解与实战(附源码 超详细必看)
Android Studio中视图基础之设置视图的宽高、间距、对齐方式的讲解与实战(附源码 超详细必看)
340 0
|
编解码 前端开发 Android开发
移动布局基础(流式布局)
移动布局基础(流式布局)
124 0
实用技巧 | RecyclerView 设置最大高度
实用技巧 | RecyclerView 设置最大高度
html+css实战184-布局完成
html+css实战184-布局完成
119 0
html+css实战184-布局完成
|
Android开发
Android开发布局 案例一
Android开发布局 案例一
121 0
Android开发布局 案例一
|
XML Java Android开发
Android开发布局 案例二
Android开发布局 案例二
206 0
Android开发布局 案例二
|
编解码 API Android开发
Android开发之AbsoluteLayout绝对布局
Android开发之AbsoluteLayout绝对布局
182 0
Android开发之AbsoluteLayout绝对布局