【问题标题】:Remove single fragment from backstack Android从 backstack Android 中删除单个片段
【发布时间】:2016-07-10 02:05:50
【问题描述】:
当我有多个片段时,我正在努力删除我动态添加的单个片段。
例如:
主要活动
膨胀 FragA
膨胀 FragB
膨胀 FragC
现在我该如何删除片段 A?
使用 popBackStack 杀死所有三个,getSupportFragmentManager().beginTransaction().remove(TAG).commit(); 似乎也做同样的事情
您打算如何正确执行此操作?我试图在标签上保持多个 backstacks 持久性
【问题讨论】:
标签:
android
android-fragments
back-stack
fragment-backstack
【解决方案1】:
试试这个...
获取当前片段标题并检查片段 A 与否。
获取当前片段标题使用getTitle()方法并检查
if(getTitle().toString.equals(fragment A){
// do
}else{
// do
}
【解决方案2】:
你能试试这个吗..
例如。使用片段名称作为标签:
FragmentA fragment = new FragmentA();
String backStateName = fragment.getClass().getName();
添加到后台堆栈:
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.addToBackStack(backStateName);
ft.commit();
弹出:
getSupportFragmentManager().popBackStackImmediate (backStateName, 0);
这应该只弹出带有特定标签的片段。