2017-03-07 36 views
3

我在我的项目中使用了片段,我在最近的Android版本25.2.0中遇到了一个问题,那就是清理不能正常工作的片段。构建版本中的片段后退堆栈问题25.2.0

让我解释一下我的问题。

最初,我已经添加了DbFragmentView()片段类,但没有在backStack上添加它。

getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new DbFragmentView()).commit(); 

对于所有其他片段,我将它添加到堆栈中使用下面methond

@Override 
    public void replaceFragment(Fragment fragment, String Title) { 
     String backStateName = fragment.getClass().getName(); 
     FragmentManager manager = getSupportFragmentManager(); 
     boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0); 

     if (!fragmentPopped) { //fragment not in back stack, create it. 
      FragmentTransaction ft = manager.beginTransaction(); 
      ft.replace(R.id.frame_container, fragment, fragment.toString()); 
      ft.addToBackStack(backStateName); 
      ft.commit(); 
      getSupportActionBar().setDisplayShowTitleEnabled(true); 
      getSupportActionBar().setTitle(Title); 
     } 
    } 

在某些情况下,我需要清除我的所有堆栈中片段,我使用下面的代码

if (getFragmentManager().getBackStackEntryCount() > 0) { 
        getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 
       } 

将版本更改为25.2.0之前,所有工作都完美无缺。

但我改变从25.1.0我的构建版本25.2.0上面的代码清除我所有的碎片,然后它可以追溯到我的第一个DbFragmentView()片段,但认为没有出现之后。

onCreateView调用的方法,但视图看起来很透明,所以我可以看到在后台的其他应用程序。

然后我再次将我的内部版本更改为25.1.0然后它照常工作。

谁能告诉我该解决方案来解决这个问题

注意:只发生在最新版本的版本25.2.0这个问题。

回答

1

Android最近更新了支持库版本,我在我的代码中更改了这个。现在问题解决了。

compile 'com.android.support:appcompat-v7:25.3.0'