Ответ 1
Добавьте это прежде, чем вы покажете Toast:
toast.setGravity(Gravity.FILL, 0, 0);
Я недавно попробовал пользовательский Toast после учебника:
http://developer.android.com/guide/topics/ui/notifiers/toasts.html#CustomToastView
С таким макетом:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="#DAAA"
>
<ImageView android:src="@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"
/>
</LinearLayout>
Но кажется, что fill_parent в корневом макете не имеет эффекта.
У вас есть идея, как я могу это исправить, чтобы получить полноэкранный тост?
Добавьте это прежде, чем вы покажете Toast:
toast.setGravity(Gravity.FILL, 0, 0);
Чтобы полностью заполнить тост по горизонтали и вертикали по размеру его контейнера, вам нужно использовать
Gravity.FILL, как упоминалось в ответе Yoah.
Я пробовал следовать, и это сработало.
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.FILL, 0, 0);
toast.setView(view); //inflated view
toast.setDuration(Toast.LENGTH_LONG);
toast.show();