如何获得当前显示的片段?

如何获得当前显示的片段?

>>> import os

>>> print os.name

posix

>>> import platform

>>> platform.system()

'Linux'

>>> platform.release()

'2.6.22-15-generic'

.的输出platform.system()如下:


Linux:Linux

麦克:Darwin

窗户:Windows

见:平台-访问底层平台的标识数据我在玩Android的片段。


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


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文件中,如何获得当前显示的片段实例?


30秒到达战场
浏览 431回答 3
3回答

莫回无

我知道这是个老职位,但以前也有麻烦。找到了一个解决方案,该解决方案是在onBackStackChanged()听功能  @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();     }这对我有效,因为我不想迭代每一个片段,我必须找到一个是可见的。希望它也能帮到别人。

浮云间

下面是我的解决方案,我发现这对于低片段场景很方便。public&nbsp;Fragment&nbsp;getVisibleFragment(){ &nbsp;&nbsp;&nbsp;&nbsp;FragmentManager&nbsp;fragmentManager&nbsp;=&nbsp;MainActivity.this.getSupportFragmentManager(); &nbsp;&nbsp;&nbsp;&nbsp;List<Fragment>&nbsp;fragments&nbsp;=&nbsp;fragmentManager.getFragments(); &nbsp;&nbsp;&nbsp;&nbsp;if(fragments&nbsp;!=&nbsp;null){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(Fragment&nbsp;fragment&nbsp;:&nbsp;fragments){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(fragment&nbsp;!=&nbsp;null&nbsp;&&&nbsp;fragment.isVisible()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;fragment; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android