具有一些水平向左对齐的视图,但只有最右边的一个视图与窗口右对齐。
| [a] [b] [c] ---------- [d] |
[[b]包含很多文字时,应显示省略号
| [a] [b bbb ...] [c] [d] |
但是在横向中不起作用,[c]不在左侧对齐,而是在右侧对齐
[a] [b] ------------------------------ [c] [d],
如何使[c]始终保持对齐,下面附有测试代码?
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="56dp" />
<TextView
android:id="@+id/topline_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:ellipsize="end"
android:maxLines="1"
android:visibility="visible"
app:layout_constraintEnd_toStartOf="@+id/content_logo"
app:layout_constraintStart_toStartOf="@+id/_guideline"
app:layout_constraintTop_toTopOf="parent"
tools:text="wer we rwe r wer eee 888 eee 888 eee eee eee eee 888" />
<ImageView
android:id="@+id/content_logo"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/content_avatar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginStart="8dp"
android:scaleType="fitXY"
android:src="@drawable/unknown_avatar"
app:layout_constraintEnd_toStartOf="@+id/_guideline"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/topline_title" />
<!-- -->
<TextView
android:id="@+id/content_user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:ellipsize="end"
android:maxWidth="220dp"
android:maxLines="1"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintLeft_toLeftOf="@+id/_guideline"
app:layout_constraintRight_toLeftOf="@+id/content_user_id_verified"
app:layout_constraintTop_toBottomOf="@+id/topline_title"
tools:text="test eee 888" />
<ImageView
android:id="@+id/content_user_id_verified"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_margin="8dp"
app:layout_constraintBottom_toBottomOf="@+id/content_user_name"
app:layout_constraintLeft_toRightOf="@id/content_user_name"
app:layout_constraintRight_toLeftOf="@id/content_user_id"
app:layout_constraintTop_toTopOf="@+id/content_user_name"
app:srcCompat="@drawable/ic_btn_play"
/>
<TextView
android:id="@+id/content_user_id"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:clickable="true"
android:ellipsize="end"
android:maxLines="1"
app:layout_constraintBottom_toBottomOf="@+id/content_user_name"
app:layout_constraintLeft_toRightOf="@id/content_user_id_verified"
app:layout_constraintRight_toLeftOf="@id/content_message_time"
app:layout_constraintTop_toTopOf="@+id/content_user_name"
app:layout_constraintWidth_default="wrap"
tools:text="eee888 qwerqwe rqw er q we rq weerw erwe" />
<TextView
android:id="@+id/content_message_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:layout_constraintBottom_toBottomOf="@+id/content_user_id"
app:layout_constraintLeft_toRightOf="@id/content_user_id"
app:layout_constraintEnd_toStartOf="@+id/content_logo"
app:layout_constraintTop_toTopOf="@+id/content_user_id"
tools:text="30 Nov 2018" />
<TextView
android:id="@+id/content_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:clickable="true"
android:lineSpacingMultiplier="1.1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/_guideline"
app:layout_constraintTop_toBottomOf="@+id/content_user_name"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." />
</androidx.constraintlayout.widget.ConstraintLayout>
您在水平链中混合了开始/结束和左/右。
对于id/content_message_time
更改:
app:layout_constraintEnd_toStartOf="@+id/content_logo"
to
app:layout_constraintRight_toLeftOf="@+id/content_logo"
作为旁注,app:layout_constraintWidth_default="wrap"
已过时。对于您的id/content_user_id
,建议您更改:
android:layout_width="0dp"
app:layout_constraintWidth_default="wrap"
to
android:layout_width="wrap_content"
app:layout_constrainedWidth="true"
应该产生相同的行为。