获取当前显示的片段的标记

时间:2016-01-29 06:23:42

标签: android android-fragments

我搜索了当前显示的片段并找到了一些答案。我试过findFragmentById。它返回null。我在片段的xml中使用FrameLayout。不是<fragment>。所以也许这就是为什么它返回null。我使用id<FrameLayout>的{​​{1}}。

有人告诉我使用标签。但我无法弄清楚如何使用您设置的标签,同时替换片段以检查当前片段是否具有标签。

如果显示从导航栏中选择的特定片段,我需要通过清除堆栈中的所有活动来findFragmentById退出应用程序。我只需要查看当前显示的片段是否是特定片段。

请问有人请举例说明。我已经做了好几天了,无法弄清楚。

编辑。我没有发布任何代码,因为我只想要一个例子。我发布了一个关于onBackPressed()已经返回null的问题,有人建议我使用标记,我无法弄清楚使用标记检查它是否是当前片段。

1 个答案:

答案 0 :(得分:3)

我希望这可以帮到你

在调用片段时,为每个片段设置一个唯一标记,如

      Fragment fragment=new HomeFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment,"Home").commit();
//home is the tag

在MainActivity的onBackPressed方法中检查特定片段是否可见

 Fragment hm=getFragmentManager().findFragmentByTag("Home");
     if(hm!=null)
     {
      if(hm.isVisible())
       {
         //exit your application
          MainActivity.this.finish(); 
       }
     }