在片段替换中找到之前有哪个片段

时间:2015-05-16 12:20:21

标签: android android-fragments

有找到哪个片段调用当前片段的方法吗?

Frag A -> Frag C

Frag B -> Frag C

所以我需要找到一个叫做片段C的片段。

片段更改方法

public void changeFragment(Fragment targetFragment, Bundle args, String tag){
        resideMenu.clearIgnoredViewList();
        if(args != null)
            targetFragment.setArguments(args);
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.main_fragment, targetFragment, tag)
                .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
                .commit();
    }

1 个答案:

答案 0 :(得分:0)

在替换片段之前尝试使用以下代码:

 Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.main_fragment);
 if( currentFragment instanceof A) {
    // currentFragment is A;
 } else if( currentFragment instanceof B) {
    // currentFragment is B;
 }
  

public abstract Fragment findFragmentById (int id)

     

查找由给定id标识的片段   在XML中膨胀或在事务中添加时作为容器ID。   这首先搜索当前添加到的片段   经理的活动;如果没有找到这样的片段,那么所有片段   当前在与此ID相关联的后台堆栈上进行搜索。