基本上我需要的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