2012-10-20 7 views
11

Ho recentrly provato un toast personalizzato seguendo il tutorial:Creazione di un fullscreen Toast personalizzato

http://developer.android.com/guide/topics/ui/notifiers/toasts.html#CustomToastView

Con un layout:

<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> 

Ma sembra che il fill_parent nel layout radice non ha alcun effetto

Avete un'idea su come posso risolvere questo problema per ottenere lo schermo intero Toast?

risposta

19

Aggiungere questo prima di mostrare la tostatura:

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

per riempire completamente un brindisi orizzontale e verticale in termini di dimensioni del suo contenitore è necessario utilizzare

Gravity.FILL come menzionato nella risposta di Yoah.

Ho provato a seguire e ha funzionato.

Toast toast = new Toast(getApplicationContext()); 
toast.setGravity(Gravity.FILL, 0, 0); 
toast.setView(view); //inflated view 
toast.setDuration(Toast.LENGTH_LONG); 
toast.show();