我有一个带有BottomNavigationView和片段容器(FrameLayout)的Activity。底部导航中的每个选项卡都具有一个TabFragment(TabFragment1,TabFragment2等),每个TabFragment是嵌套片段的父片段。按下“后退”按钮后,嵌套的片段将添加到后退堆栈中,以进行还原(每个TabFragment都有自己的后退堆栈)。我的问题是:在“活动”中替换选项卡片段时,是否应该在每个TabFragment中手动删除嵌套的片段?父片段被销毁后,嵌套片段也会被销毁吗?碎片被销毁后,是否清除了堆栈?我想避免内存泄漏。谢谢!
答案 0 :(得分:0)
对此不确定。但是,当我使用ViewPager时,如果我用其他片段替换ViewPager,则将替换ViewPager,但不会删除ViewPager中的片段。因此,当我替换ViewPager时,我会这样做。
for( Fragment f : getSupportFragmentManager().getFragments()){
if( f.getClass().getSimpleName().equals("Your nested fragment name"))
transaction.remove(f);
}