检测一个片段是否被绘制?

基本上我需要onWindowFocusChanged()的function,但在一个FragmentonWindowFocusChanged()侦听器实际上不可用于碎片,所以我不知道该怎么做。

任何方式来做到这一点?

碎片是通过在onCreateView()返回的View “绘制”的。 你可以在那里使用事件处理程序。 通常,如果在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)方法在activity中调用,但是在fragment的时候我们可以通过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 } }