2013-02-06 41 views

回答

37

望着sources,它看起來像這個系統主要是用於把在尋呼機片段。 例如,您可以將它設置爲提示(「應用程序提供的提示」作爲Fragment源文件中的註釋),以便它可以例如將其加載(初始化)如果不可見並且優先加載可見片段(再次用於尋呼機時通常需要)。

但請注意,FragmentPagerAdapter利用此功能並在其片段上正確調用setUserVisibleHint(),這就是爲什麼我想你會看到一些人建議如以覆蓋setUserVisibleHint()以知道某個片段何時對用戶可見(並且因此僅當該片段位於FragmentPagerAdapter內部時才起作用,而不是僅當放入通常的活動佈局時)。

因此要清楚地回答這個問題:您可以手動調用它,並且FragmentPagerAdapter也可以手動調用它。

+0

那麼,在正常活動中添加片段時,還有什麼替代方法呢? – AndroidGuy

+0

如何手動調用它?我們應該檢查isAdded(),isHidden()..的返回值嗎? isVisible()總是返回false。 – AndroidGuy

+0

@AndroidGuy除非你實現一個管理片段的類(例如片段分頁器),你**不需要**來調用'Fragment#setUserVisibleHint'。所以如果你只是簡單地將一個片段添加到一個活動中,你就不需要爲此而煩惱。 爲了獲得更好的幫助,我建議你澄清你*想要做什麼*(你的問題)並在StackOverflow上搜索它,或者如果沒有完全匹配你的問題,可以問一個新問題。 – desseim

0

從文檔:

設置一個暗示,這個片段的UI當前是否對用戶可見的系統。此提示默認爲true,並且在片段實例狀態保存和恢復中保持不變。

應用程序可能會將此設置爲false以指示片段的UI已滾動出可視範圍,否則用戶無法直接看到該片段。這可以被系統用來區分諸如片段生命週期更新或裝載器排序行爲等操作的優先級。

參數 isVisibleToUser如果此片段的用戶界面當前對用戶可見(默認),則爲true;如果不是,則爲false。

聽起來像默認爲True,如果您願意,可以將其設置爲False。

Documentation

+1

已閱讀..它不談論系統。不管怎麼說,還是要謝謝你。 – vivek

0

不適用於Android版本低於版本15和Android支持庫版本低於版本11.

+2

這是支持v4庫的一部分,我現在在運行API 10的Nexus One上使用它,沒有任何問題。似乎沒有任何理由說明爲什麼它不能一直運行到API 4。 – gMale