Макеты Android - «wrap_content» не позволяет отображать элементы справа, если ширина контента слишком велика - PullRequest
0 голосов
/ 04 декабря 2018

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

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

[Некоторый более длинный текст] [Img]

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

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

1 Ответ

0 голосов
/ 05 декабря 2018

Используйте 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"/>

enter image description here

enter image description here

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

...