检测片段何时被绘制?

基本上我需要onWindowFocusChanged()的function,但在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(boolean hasFocus)方法调用活动,但是当片段绘制时我们可以通过onActivitycreated()方法检查。 查看此posthttps://stackoverflow.com/a/32819850/2732632

OnWindowFocusChanged不提供有关绘制视图的信息(或没有看到)在每个可以在Fragment中具有焦点的视图上实现OnWindowFocusChanged。 在伪代码中:

 Fragment implements OnWindowFocusChanged{ onCreate(){ btn.OnWindowFocusChanged(this); editTxt.OnWindowFocusChanged(this); .... } public void OnWindowFocusChanged(boolean hasFocus){ // your fragment has focus } }