基本上我需要的onWindowFocusChanged()
但在Fragment
的功能。 的onWindowFocusChanged()
聽者實際上不是提供給不幸的片段,所以我不知道該怎麼做。檢測片段何時被繪製?
任何方式來做到這一點?
基本上我需要的onWindowFocusChanged()
但在Fragment
的功能。 的onWindowFocusChanged()
聽者實際上不是提供給不幸的片段,所以我不知道該怎麼做。檢測片段何時被繪製?
任何方式來做到這一點?
片段通過你在onCreateView()
返回View
「繪製」。你可以在那裏使用事件處理程序。通常情況下,如果有需要,當View
首次來查看要運行的命令,你可以在一個Runnable
分配給它,它通過post()
方法連接到View
。
getView().post(new Runnable() {
@Override
public void run() {
// code you want to run when view is visible for the first time
}
}
)
OnWindowFocusChanged不提供信息關於繪製視圖(或沒有看到) 上,可以在你的片段具有焦點每個視圖實現OnWindowFocusChanged。 在僞代碼:
Fragment implements OnWindowFocusChanged{
onCreate(){
btn.OnWindowFocusChanged(this);
editTxt.OnWindowFocusChanged(this);
....
}
public void OnWindowFocusChanged(boolean hasFocus){
// your fragment has focus
}
}
onWindowFocusChanged(布爾hasFocus)方法調用中的活性,但是當片段drawns我們可以檢查通過方法onActivitycreated()。檢查這個帖子https://stackoverflow.com/a/32819850/2732632
似乎是工作吧!在我選擇這個作爲正確答案之前,我將通過一些場景來運行它。 – VicVu
我也應該注意到(近兩個月後),這個技巧適用於任何視圖。不僅僅是通過片段發佈的,所以如果你膨脹一個View int他活動例如。這將工作。 – DeeV
是的!我一直在使用這一切爲我的小噱頭噱頭,它的偉大。 – VicVu