如何从他的调用片段中删除片段?
我搜索过这个东西,但根据我的要求,我没有得到解决方案。在我的应用程序中,有一个FragmentActivity
具有viewPager
。
此viewPager
包含3个碎片。对于片段我正在使用FragmentStatePagerAdapter
。
假设有3个片段:A
,B
,C
; D
片段C
也包含子片段E
。
我在E
方法和片段onCreateView()
的{{1}}方法中调用了片段onDestroy()
,我删除了子片段C
。
当我将E
从viewPager
移至C
,B
移至B
时,当我从{{1}回来时,会发生什么到A
,现在显示的片段是A
。现在,如果我滑动片段B
应该显示,但代替片段B
C
的子片段,片段C
在片段C
之后显示然后片段C现在在这种情况下显示我还没有在片段E
上看到片段E,子片段E
没有与C
交互,但为什么它在viewPager中被添加,< / p>
我试图在E
和viewpager
E
方法中销毁子片段onPause()
,但没有发生任何事情。请任何人帮助我。
onDestroy()
答案 0 :(得分:0)
你请试试这些。
FragmentManager fragmentManager = getActivity().getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment currentFragment = fragmentManager.findFragmentById(R.id.frame_container);
fragmentTransaction.remove(currentFragment);//remove current fragment
答案 1 :(得分:0)
当我将viewPager从C滑动到B,B从A滑到A时发生了什么 - 当我从A回到B时,现在显示的片段是B。
我以前就像你现在面对的那样。我正在注册和取消注册片段生命周期事件的监听器。但是在viewpager中,即使我切换到另一个片段,以前的片段永远不会被破坏,你可以check
在深入了解你的情况之前,我想提一下'off page limit'。所以你不能设置为零。检查此link。因此,当您设置0时,默认为1
viewpager.setOffscreenPageLimit(0);
如果我没有遗漏某些东西,在这种情况下,当你从C切换到B
时假设你来自第一个案例(C到B,然后B到A)
底线,使用ViewPager,您只有两个片段。一个是你正在互动,第二个(屏幕关闭)