2016-08-09 46 views
0

我有一個TextView對象在一個活動(而不是片段),我使用SetText()填充一些文本。在某個時間點,我將對象的可見性更改爲View.GONE。經過一段時間,當對象的可見性設置爲View.VISIBLE時,TextView對象的可見性被設置爲View.VISIBLE,動態顯示的文本不會顯示在TextView中。我試圖理解使用Log會發生什麼,並發現TextView對象的內容是空字符串。因此,我的問題是,當TextView對象的文本被設置爲View.GONE時,會發生什麼?當TextView對象的可見性設置爲View.GONE時,TextEx會發生什麼?

簡介:

填充文字的TextView使用setText() - >變化知名度View.GONE - >更改知名度View.VISIBLE - >getText()回報

問題:爲什麼?

+0

你確定'onCreateView()'不再被調用? – Shaishav

+1

View.GONE不應該這樣做,它只是使視圖不可見(並且不佔用空間)。你可以在你使用textview的地方發佈代碼嗎? – cuoka

+0

這是一個新秀的錯誤。由於其他元素重疊,TextView的可見性從視圖中隱藏起來, – tpk

回答

2

setVisibility()View類的方法和文檔說,當能見度設置爲View.GONE

這種觀點是不可見的,並且它不採取任何空間佈局 目的。

因此,View實例(這裏TextView對象)是非常活躍和繁榮,並沒有任何理由爲它的私有字段(mTextTextView情況下)被破壞。它對佈局經理來說是無形的。在你的情況下,上述行爲的肇事者之一是可能重新初始化TextView對象(例如通過調用onCreateView())。

+0

View.INVISIBLE呢? 在我的應用程序中,我想要一些可以通過編程操作但不會顯示給用戶的東西。 – Swarnveer

1

Textview是不可見的,它不佔用任何空間用於佈局目的。 所以沒有數據丟失,它只是無形的,沒有空間獲取的佈局。所以它必須是代碼中的其他setText()操作,或者可能是重新創建TextView對象。

相關問題