如何获取当前显示的片段? [英] How do I get the currently displayed fragment?
本文介绍了如何获取当前显示的片段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在玩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屋!
查看全文