2011-10-14 44 views
5

我正在使用Toast.makeText來顯示對話框的結果併產生一個稍微奇怪的問題:文本顯示在應該保持它的框架之上,像這樣:Toast.makeText(...).show()有時未對齊

消息與幀沒有對齊。請更好地調整它。 [_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___]我一般使用代碼

看起來像

Toast bread = Toast.makeText(getContext(), R.string.message, Toast.LENGTH_LONG); 
bread.show(); 

從對話框。我聽說不好的背景有時會導致通貨膨脹問題,但getOwnerActivity()返回null,所以沒有了。無論如何,我會認爲getContext()會提供在施工時傳入的上下文,無論如何這是活動。

有什麼建議嗎?

+2

嘗試使用getApplicationContext()更改getContext()... –

回答

20

你可以試試這個:

Toast bread = Toast.makeText(getApplicationContext(), R.string.message, Toast.LENGTH_LONG); 
bread.show(); 
+0

在Dialog類中不可用,但會getContext()。getApplicationContext()'工作? –

+0

它工作得很好,謝謝! –

+0

它被寫爲評論的問題之前你發佈這個答案 –

1

如果從活動中創建的敬酒,你應該使用:thisMyActivityName.this作爲上下文參數。

+0

它來自於對話框,但無論如何感謝。 –

3
bread.setGravity(5,5,5); 

嘗試通過改變這些值來玩,直到你得到確切的位置。

但使用Gravity.CENTER等常量是prefererrd方式..

1

嘗試使用,

<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="true" /> 
清單檔案中的