Подтвердить что ты не робот

Создание полноэкранного пользовательского тоста

Я недавно попробовал пользовательский 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 в корневом макете не имеет эффекта.

У вас есть идея, как я могу это исправить, чтобы получить полноэкранный тост?

4b9b3361

Ответ 1

Добавьте это прежде, чем вы покажете Toast:

toast.setGravity(Gravity.FILL, 0, 0);

Ответ 2

Чтобы полностью заполнить тост по горизонтали и вертикали по размеру его контейнера, вам нужно использовать

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();