【发布时间】:2015-07-30 05:40:03
【问题描述】:
在我的活动中,我有各种片段。默认情况下,活动显示地图。点击 listitem 时,片段 A、B 或 C 会使用以下代码显示:
protected void replaceFragment(int i) {
FragmentManager fragmentManager = getFragmentManager();
android.app.FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
switch (i) {
case FRAGMENT_A:
aFragment = new AFragment ();
fragmentTransaction.replace(R.id.main_framelayout_replace,
aFragment , TAG_A_FRAGMENT);
fragmentTransaction.commit();
break;//and so on.....
default:
break;
}
}
在这里我遇到了一个问题:当我用 FragB 替换 FragA 时,FragB 是嵌套片段,即它本身包含列表和详细信息片段。当我尝试删除 FragB 以外的任何片段时,我能够成功完成并显示默认地图屏幕,但是当我在 FragB 上并尝试删除它时,我无法看到默认地图屏幕。而是显示一个空白的白色屏幕。
碎片的去除如下:
if (aFragment != null) {
fragmentManager.beginTransaction()
.remove(aFragment ).commit();
}//and so on...
对于具有列表和详细片段的FragB,我也在FragB的onDetach中进行跟踪,
fragmentManager.beginTransaction()
.remove(MainActivity.listFragment).commit();
我在这里做错了吗?任何帮助表示赞赏。
注意:我在任何 try catch 中都没有遇到任何异常。包括 FragB 的 onDetach 在内的所有代码行都在无错误地执行。
【问题讨论】:
标签: android android-fragments android-nested-fragment