android - 如何获取当前显示的 fragment ?

标签 android android-layout android-intent android-fragments

我在 Android 中玩 Fragments。

我知道我可以使用以下代码更改 fragment :

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 实例?

最佳答案

当您在事务中添加 fragment 时,您应该使用标签。

fragTrans.replace(android.R.id.content, myFragment, "MY_FRAGMENT");

...稍后如果您想检查 fragment 是否可见:

MyFragment myFragment = (MyFragment)getSupportFragmentManager().findFragmentByTag("MY_FRAGMENT");
if (myFragment != null && myFragment.isVisible()) {
   // add your code here
}

另见 http://developer.android.com/reference/android/app/Fragment.html

关于android - 如何获取当前显示的 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294603/

相关文章:

Android - 如何拦截 'Install application' Intent

java - 在 Android 中使用 Java Mail API 邮寄大图像(> 500 KB)时出错

android - 错误 : <item> inner element must either be a resource reference or empty?

android - DrawerLayout 修改灵敏度?

Android 生命周期库 : Cannot add the same observer with different lifecycles

java - 无法解析符号 'Spinner'

android - 改造滚动发光在填充之外

android - 如何避免在相机 Intent 上使用 MediaStore.EXTRA_OUTPUT?

android - 从 Android 应用程序以编程方式调用 Google Now 搜索

安卓:如何将我的普通安卓应用程序转换为安卓启动器?