基本上我需要的功能,onWindowFocusChanged()
但在一个Fragment
. 不幸的是,onWindowFocusChanged()
侦听器实际上对片段不可用,所以我不确定该怎么做。
有什么办法可以做到这一点?
基本上我需要的功能,onWindowFocusChanged()
但在一个Fragment
. 不幸的是,onWindowFocusChanged()
侦听器实际上对片段不可用,所以我不确定该怎么做。
有什么办法可以做到这一点?
片段是通过View
您返回的“绘制”的onCreateView()
。您可以在其中使用事件处理程序。通常,如果有一个命令需要在View
第一次查看时运行,您可以将其分配在 a 中,并通过方法Runnable
将其附加到。View
post()
getView().post(new Runnable() {
@Override
public void run() {
// code you want to run when view is visible for the first time
}
}
)
onWindowFocusChanged(boolean hasFocus) 方法在活动中调用,但是在绘制片段时我们可以通过 onActivitycreated() 方法进行检查。检查这篇文章 https://stackoverflow.com/a/32819850/2732632
OnWindowFocusChanged 不提供有关绘制视图(或没有看到)的信息 在可以在片段中具有焦点的每个视图上实现 OnWindowFocusChanged。在伪代码中:
Fragment implements OnWindowFocusChanged{
onCreate(){
btn.OnWindowFocusChanged(this);
editTxt.OnWindowFocusChanged(this);
....
}
public void OnWindowFocusChanged(boolean hasFocus){
// your fragment has focus
}
}