2011-08-05 21 views
0

如果我想切換一個TextView的知名度,我可以使用View.VISIBLEView.INVISIBLEView.VISIBLE和正常整數使用的int之間有什麼區別?

按照Android Documentation,可見是0和不可見的是1

但是它不起作用,如果我使用setvisibility(0)

爲什麼View.VISIBLE工作,但不是0?

+0

它爲我......如果我使用setVisibility(0)項目獲得可見。 – Cristian

+0

如果你的Android庫中的View.Visible爲0,這應該是不可能的。 –

+0

setVisibility(1)也使其可見,但它應該是不可見的 – mrburns

回答

2

檢查source code始終是Android的有效選項。有一兩件事是顯而易見的是,INVISIBLE 1:

/** 
* This view is visible. Use with {@link #setVisibility}. 
*/ 
public static final int VISIBLE = 0x00000000; 

/** 
* This view is invisible, but it still takes up space for layout purposes. 
* Use with {@link #setVisibility}. 
*/ 
public static final int INVISIBLE = 0x00000004; 

然而,VISIBLE確實是0,所以用文字0應該工作。所有setVisibility()確實是代表setFlags()與您通過它的號碼和VISIBILITY_MASK,這是0x0C(12)。

+0

謝謝。我認爲它看起來像我讀錯了文檔。我認爲這些0,1,2值是用於xml文件的,而VISIBLE,INVISIBLE,GONE則是在代碼中使用它們的值。 – mrburns

1

這些int值可以隨時改變,這就是爲什麼你需要小心使用數字而不是枚舉類似的參數(我知道它不是一個枚舉......只是說)。

,如果你真的想知道背後的價值這些參數使用:

hello.setText(Integer.toString(View.INVISIBLE)) 

與你好是一個TextView。

在這種情況下

,答案是4(.GONE爲8)

相關問題