14

我最近按照教程尝试了自定义 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 吗?

4

2 回答 2

23

在显示 Toast 之前添加:

toast.setGravity(Gravity.FILL, 0, 0);
于 2012-10-20T18:35:18.160 回答
3

要完全填充水平和垂直大小的吐司容器,您需要使用

如Yoah的回答中提到的 Gravity.FILL 。

我尝试了以下并且它起作用了。

Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.FILL, 0, 0);
toast.setView(view); //inflated view
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
于 2012-10-20T18:45:08.117 回答