注意,本文不讲解ConstraintLayout的基本使用,而是针对部分问题的处理方案
1. ConstraintLayout中使用0dp约束TextView无法显示省略号的问题
部分ConstraintLayout的约束情况下横向空间内有两个TextView,希望第二个TextView完整显示,第一个TextView过长时省略显示,在约束条件下第一个TextView需要使用“0dp”约束,这个时候会造成第一个TextView无法在过长时显示省略号,需要在TextView上设置属性layout_constraintWidth_default
为wrap
,如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns: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="wrap_content">
<!--需要显示省略号的TextView,设置layout_constraintWidth_default属性-->
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="start"
android:lines="1"
android:maxLines="1"
android:singleLine="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/title_suffix"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintWidth_default="wrap"
android:text="主文字主文字" />
<TextView
android:id="@+id/title_suffix"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/len_4"
android:background="#1a2d40e9"
android:gravity="center"
android:maxLines="1"
android:clickable="true"
android:paddingStart="@dimen/len_1"
android:paddingEnd="@dimen/len_3"
android:visibility="gone"
android:ellipsize="end"
app:layout_constraintBottom_toBottomOf="@+id/title"
app:layout_constraintStart_toEndOf="@+id/title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/title"
app:layout_constraintHorizontal_bias="0"
android:text="尾部文字尾部文字" />
</androidx.constraintlayout.widget.ConstraintLayout>
网友评论