ConstraintLayout使用小技巧

在开发中可能需要实现如下效果:

短文本
长文本

首先尝试在原先LinearLayoutRelativeLayout等布局中的方式:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:background="@android:color/darker_gray"
    >

  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_margin="10dp"
      android:background="@drawable/flow_ic_source_background"
      android:ellipsize="end"
      android:maxLines="1"
      android:singleLine="true"
      android:textColor="@android:color/black"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="这是一个测试文案"
      />

</android.support.constraint.ConstraintLayout>

结果如下:

image.png

发现默认效果为居中,此时尝试添加如下代码:
app:layout_constraintHorizontal_bias="0"
效果如下:
image.png

然后尝试长文案,效果如下:

image.png

这下过并不是我们想要的。此时我们抛弃wrap_content,转而使用match_constraint(xml中对应0dp)来试一下:
image.png

超长文案时没问题。但是在切换为短文案时,又出现了问题:
image.png

显然这也不是我们需要的效果。然后尝试增加如下代码:
app:layout_constraintWidth_max="wrap"
效果如下:
image.png

image.png

OK,这次没问题了。

最终代码如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:background="@android:color/darker_gray"
    >

  <TextView
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_margin="10dp"
      android:background="@drawable/flow_ic_source_background"
      android:ellipsize="end"
      android:maxLines="1"
      android:singleLine="true"
      android:textColor="@android:color/black"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintHorizontal_bias="0"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      app:layout_constraintWidth_max="wrap"
      tools:text="这是一个测试文案"
      />

</android.support.constraint.ConstraintLayout>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 太长不看版:在 Android UI 布局过程中,遵守一些惯用、有效的布局原则,可以制作出高效且复用性高的 UI。...
    Mupceet阅读 3,930评论 0 14
  • day72: 1:今日走路3803,下雨,饭后未到小区散步。 2:(热锅上的家庭)2节。开始听(活好)。 3:完成...
    玲03阅读 53评论 0 0
  • 这是我过的最差劲的一年 一整年,一事无成,却还暗自洋洋得意,我做了什么?六级,裸考,靠当年高中吃剩的东西低空飘过。...
    暾出东方照槛前扶桑阅读 164评论 5 0
  • 1 射雁城是个正儿八经的边陲小镇,地处大梁北疆。 这些年,大梁国力强盛,四方安定,连带着往日饱受战争罹难的北地边陲...
    染绛的旧铺阅读 1,036评论 5 106