Макеты Android -"wrap_content" не позволяет отображать элементы справа, если ширина контента слишком велика

Эта часть, над которой я работаю, имеет конструкторское требование, чтобы в одной строке показывался текст, за которым следовало изображение. Изображение всегда должно быть выровнено рядом с текстом следующим образом:

[Некоторый текст] [Img]

[Немного больше текста] [Img]

Для этого я использую модификатор "wrap_content" по ширине текста. Проблема, однако, заключается в том, что когда текст достаточно длинный, чтобы занять ширину экрана, изображение не отображается. Я ищу что-то, чтобы помочь мне ограничить длину ширины (не может быть сделано динамически, так как это требует быстрой загрузки), чтобы всегда оставалось достаточно места для изображения в конце строки.

Пока что единственный способ сделать это - использовать TextView с фиксированной шириной, который в итоге выравнивает изображение в одной и той же точке каждой строки, что нежелательно. Использование чего-либо, кроме "wrap_content", либо требует от меня динамической установки ширины во время выполнения, либо неправильно создает TextView шире или уже, чем должно быть, и "wrap_content", кажется, делает его таким, чтобы изображение не отображалось, Я пробовал RelativeLayout, ConstraintLayout и LinearLayout для достижения этой цели, и все, кажется, имеют ту же проблему.

1 ответ

Решение

Использование android:drawableRight отображать свое изображение вместо использования отдельного ImageView,

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:drawableRight="@drawable/android"
    android:text="short text"/>

Ты можешь использовать android:gravity контролировать вертикальное положение текста / изображения и android:drawablePadding контролировать пространство между изображением и текстом.

Другие вопросы по тегам