Я пытаюсь создать макет для всплывающей подсказки, который включает изображение слева, другое изображение справа, а затем макет в середине, который включает в себя пару TextViews.
Если длина любого TextView достаточно мала, я хочу, чтобы вся выноска была достаточно широкой, чтобы показать текст;если он слишком длинный, я хочу, чтобы он был обрезан символом '...'.
Вот пример XML-кода, с которым я имею дело (для ясности я удалил все поля, отступы и т. д.):
<RelativeLayout android:id="@+id/callout"
android:layout_width="wrap_content"
android:layout_height="54dp">
<ImageView android:id="@+id/callout_img_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout android:id="@+id/callout_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/callout_img_left">
<TextView android:id="@+id/callout_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true" />
<TextView android:id="@+id/callout_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:layout_below="@id/callout_name" />
</RelativeLayout>
<ImageView android:id="@+id/callout_img_right"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/callout_info"/>
</RelativeLayout>
Изначально у меня было изображение справа, используя android:layout_alignParentRight="true"
, но это заставило всю выноску заполнить его доступной шириной.Приведенный выше XML работает для короткого текста, но если текст слишком длинный, он выталкивает (сжимает?) Изображение справа.