2016-10-12 16 views
0
@Override 
public void onClick(View view) { 
    switch (view.getId()) { 
     case R.id.btnOKButt: 
      displayToast("My text"); 
      startActivity(new Intent(Activity1.this, Activity2.class)); 
      finish(); 
      break; 
    } 
} 
private void displayToast(String s) { 

// тоста по умолчанию вид группы является RelativeLayoutИмейте гренки заполнить весь дисплей все еще имея текст в середине

Toast toast = Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG); 
    LinearLayout toastLayout = (LinearLayout) toast.getView(); 
    TextView toastTV = (TextView) toastLayout.getChildAt(0); 
    toast.getView().setBackgroundColor(Color.BLACK); 
    toast.setGravity(Gravity.FILL, 0, -250); 
    toastTV.setTextSize(30); 

    toast**strong text**.show(); 
} 

}

Я хотел бы иметь тост заполнить весь фон и по-прежнему иметь текст посередине. Но если я использую «Gravity.FILL», у меня всегда есть текст наверху. Что нужно делать?

ответ

0

Необходимо, чтобы create a custom toast view с силой тяжести TextView = центром. Было бы что-то подобное:

Компоновка файл

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/custom_toast_container" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="8dp" 
> 
<TextView android:id="@+id/text_toast" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:text="@string/hello_toast" /> 
</LinearLayout> 

Показать тосты

 LayoutInflater inflater = getLayoutInflater(); 
    View layout = inflater.inflate(R.layout.test_toast, 
      (ViewGroup) findViewById(R.id.custom_toast_container)); 

    TextView text = (TextView) layout.findViewById(R.id.text_toast); 
    text.setTextSize(40); 
    Toast toast = new Toast(getApplicationContext()); 
    toast.setGravity(Gravity.FILL, 0, 0); 
    toast.setDuration(Toast.LENGTH_LONG); 
    toast.setView(layout); 
    toast.show();