- 如果 Text1 更长,则应该将所有内容推到右侧
- 如果 Text2 更长,则应该将所有内容推向左侧
- 否则,箭头应根据父视图居中
- 如果任何 TextView 超出,因此整个视图超出父视图,则应修剪(椭圆)
问问题
24 次
1 回答
1
您可以使用ConstraintLayout
. 创建一个打包的水平链,并在每个文本视图上使用wrap_content
plus constrainedWidth :
<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:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/image"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constrainedWidth="true" />
<TextView
android:id="@+id/right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/image"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constrainedWidth="true" />
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/left"
app:layout_constraintEnd_toStartOf="@id/right"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
如果两个文本视图都有长文本,您可以通过重新排序ConstraintLayout
. 这不会改变它们的定位方式;它只会改变左侧或右侧文本是否先拉伸。
于 2022-01-11T20:12:57.180 回答