Я создаю пользовательский вид для использования с android.widget.Toast.setView(), но независимо от того, как я изменяю представление, все, кажется, выложено с использованием параметра «wrap_content» в качестве настройки ширины макета.являются сообщениями для тостов в android, которые были вынуждены wrap_content layout_width?
Например, установлен ли размер корневого макета представления (LinearLayout в моем случае) до «match_parent» или задан статический размер, такой как «500dp». Я получаю тот же результат во время выполнения ... тост просто обертывает содержание.
Мой макет XML является:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toast_container"
android:orientation="horizontal"
android:layout_width="500dp"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="@drawable/toast_bg">
<ImageView
android:id="@+id/toastIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@drawable/toast_icon" />
<TextView
android:id="@+id/toastMsg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="sample toast message"/>
</LinearLayout>
Я подозреваю, что Android (я бегу в API платформы 19 Kit-Kat) заставляет взгляды тоста быть "wrap_content. Это так?
Я уверен, что кто-то предложит мне посмотреть исходный код в AOSP. Если бы у меня был удобный код, я бы сделал это.
Действительно, добавление дополнительного вложенного RelativeLayout устраняет проблему. Кажется странным и чрезмерным, что он работает таким образом, но это так. – alpartis
Интересно, будет ли работать какой-либо вложенный макет, или для этого требуется вложенный RelativeLayout? – alpartis