Я не могу решить эту, казалось бы, простую проблему с макетом:
У меня есть TextView
, и я хочу иметь ImageView
со значком справа от него. Я не могу использовать CompoundDrawable
, потому что значок должен быть кликабельным. Также TextView
должно быть wrap_content
, потому что у него есть фон.
Текст, установленный на TextView
, имеет переменную длину. Если текст короткий, TextView должен занимать только необходимое ему пространство, а рядом с ним должен быть значок. Если текст длинный, значок должен быть справа, а TextView
занимает все пространство слева от него.
Вот что я хочу:
![enter image description here](https://i.stack.imgur.com/ZLNTm.jpg)
Что я пробовал:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0000ff"
android:text="short text"
android:textColor="#ffffff"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toRightOf="@id/tv"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_close_black_24dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
Это работает для коротких текстов, но когда текст длинный, TextView
занимает все пространство и «выталкивает» значок за пределы экрана.
Как это можно решить?