如何获取当前显示的片段? [英] How do I get the currently displayed fragment?

查看:67
本文介绍了如何获取当前显示的片段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在玩Android中的片段.

I am playing with fragments in Android.

我知道我可以使用以下代码来更改片段:

I know I can change a fragment by using the following code:

FragmentManager fragMgr = getSupportFragmentManager();
FragmentTransaction fragTrans = fragMgr.beginTransaction();

MyFragment myFragment = new MyFragment(); //my custom fragment

fragTrans.replace(android.R.id.content, myFragment);
fragTrans.addToBackStack(null);
fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragTrans.commit();

我的问题是,如何在Java文件中获取当前显示的Fragment实例?

My question is, in a Java file, how can I get the currently displayed Fragment instance?

推荐答案

我知道这是一篇旧文章,但以前也遇到了麻烦.在onBackStackChanged()侦听功能中找到了解决此问题的方法

I know it's an old post, but was having trouble with it previously too. Found a solution which was to do this in the onBackStackChanged() listening function

  @Override
    public void onBackPressed() {
        super.onBackPressed();

         Fragment f = getActivity().getFragmentManager().findFragmentById(R.id.fragment_container);
      if(f instanceof CustomFragmentClass) 
        // do something with f
        ((CustomFragmentClass) f).doSomething();

    }

这对我有用,因为我不想遍历每个片段,而我不得不找到一个可见的片段.希望它也能帮助其他人.

This worked for me as I didn't want to iterate through every fragment I have to find one that is visible. Hope it helps someone else too.

这篇关于如何获取当前显示的片段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆