2011-01-16 2 views

ответ

56

Это должно работать:

Toast t = Toast.makeText(this, "Hello", Toast.LENGTH_SHORT); 
t.setGravity(Gravity.FILL_HORIZONTAL, 0, 0); 
+0

Это прекрасно работает, но тост отображается как center_horizental. Можем ли мы иметь Fill_Horizontal и BOTTOM вместе? –

+0

работает как шарм, спасибо @ C0deAttack –

+1

@KaiWang вы можете просто добавить | оператор вроде этого: toast.setGravity (Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0); – Cody

0

Я бы сказал, что вы должны сделать диалог или действие (с диалоговой темой или чем-то, что вы сделали, которая похожа на тему диалога) и показать это.

Используйте таймер в oncreate, который вызывает finish() после вашего времени.

0

Попробуйте что-то вроде этого ...

wM = (WindowManager) context.getApplicationContext() 
       .getSystemService(Context.WINDOW_SERVICE); 
     mParams = new WindowManager.LayoutParams(); 
     LayoutInflater inflate = (LayoutInflater) context 
       .getApplicationContext().getSystemService(
         Context.LAYOUT_INFLATER_SERVICE); 
     v = inflate.inflate(R.layout.custom_toast, null); 
     // Set the layout to be like a toast window! 
    mParams.gravity = Gravity.WHEREVER YOU WANT IT TO BE 
      mParams.height = 200; 
    mParams.width = WindowManager.LayoutParams.FILL_PARENT; 
    mParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL; 
    mParams.format = PixelFormat.OPAQUE; 
    mParams.type = WindowManager.LayoutParams.TYPE_TOAST; 

      wm.addView(v); 

      <Timer or whatever> 

      wm.removeView(v); 
1

Посмотрите на это example для пользовательского тоста с бордюром.

2

Вы можете создать тост с пользовательским макетом и fill_horizontal. Ниже код написан в классе адаптера, и он работает нормально.

  LayoutInflater inflater =(LayoutInflater)mContext 
            .getSystemService(mContext.LAYOUT_INFLATER_SERVICE); 
      View layout =inflater.inflate(R.layout.custom_toast_layout,null); 

      TextView text = (TextView) layout.findViewById(R.id.text); 
      text.setText("Hello! This is a custom toast!"); 

      Toast toast = new Toast(mContext); 

      //use both property in single function 
      toast.setGravity(Gravity.BOTTOM|Gravity.FILL_HORIZONTAL, 0, 0); 
      toast.setDuration(Toast.LENGTH_LONG); 
      toast.setView(layout); 
      toast.show(); 
Смежные вопросы