android – 如何获取onWindowFocusChanged片段?

前端之家收集整理的这篇文章主要介绍了android – 如何获取onWindowFocusChanged片段?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Android Sliding Menu using Navigation Drawer.
我知道onWindowFocusChanged在MainActivity上工作.
我如何检查它是否集中在片段上?

有人说我可以把hasFocus传递给片段,但是我不知道该怎么做.任何人都可以给我一些示例代码

我想在我的片段上运行↓这个

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    if (hasFocus) {
        //I need to do someing.
        method();
    }
}

解决方法

您可以创建一个接口,并且所有的片段都可以实现这个接口,而在你的onWindowFocusChanged里面你可以得到当前片段,并传递调用接口提供的方法.

片段的示例界面可以是:

public interface IOnFocusListenable {
   public void onWindowFocusChanged(boolean hasFocus);
}

你的碎片必须实现这个界面:

public class MyFragment implement IOnFocusListenable {
    ....
    public void onWindowFocusChanged(boolean hasFocus) {
        ...
    }
}

而在你的Activity的onWindowFocusChanged中,你可以做
下列:

public class MyActivity extends AppCompatActivity {
   @Override
   public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        if(currentFragment instanceOf IOnFocusListenable) {
            ((IOnFocusListenable) currentFragment).onWindowFocusChanged(hasFocus);
        }
    }
}

或者您创建一个侦听器,并将活动片段添加到侦听器.因此,如果片段可见,您订阅此侦听器,并且每次调用onWindowFocusChangedevent时,都将调用此侦听器.

这种方法与上述非常相似,区别在于有一个IOnFocusListenable的列表,那些在活动onWindowFocusChanged方法中被触发

猜你在找的Android相关文章