Android ViewPager 在容器中被替换时不调用 onDetach/onDestroy/onDestroyView
Android ViewPager not calling onDetach/onDestroy/onDestroyView for when being replaced in a container
我有一个 FrameLayout 容器,当从导航抽屉中 selected 一个项目时,我使用替换方法在其中放置一个片段。
getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment, fragment.getFragmentTag()).commit();
我有一个片段,其中有一个 ViewPager。我有 3 个片段,它们显示在带有 ViewPager 的选项卡布局中。当我 select 导航抽屉中的另一个项目时,带有 ViewPager 的片段被替换,但其中的片段没有分离。系统只调用带有ViewPageronDetach/onDestroy等方法的fragment,不调用它包含的fragment的方法
我正在使用 FragmentPagerAdapter 并尝试使用 FragmentStatePager 适配器。没有什么改变。我使用默认的 setOffscreenPageLimit(1);
如何调用我的 ViewPager 片段方法 onDetach/onDestroy?
谢谢!
您使用的是 FragmentManager 还是子 Fragment Manager?如果您在另一个 Fragment 中创建一个 Fragment,并且您希望内部 Fragment 的行为与外部 Fragment 相同,则应从外部 Fragment 获取子片段管理器并使用它来创建内部 Fragment。参见 this。
我有一个 FrameLayout 容器,当从导航抽屉中 selected 一个项目时,我使用替换方法在其中放置一个片段。
getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment, fragment.getFragmentTag()).commit();
我有一个片段,其中有一个 ViewPager。我有 3 个片段,它们显示在带有 ViewPager 的选项卡布局中。当我 select 导航抽屉中的另一个项目时,带有 ViewPager 的片段被替换,但其中的片段没有分离。系统只调用带有ViewPageronDetach/onDestroy等方法的fragment,不调用它包含的fragment的方法
我正在使用 FragmentPagerAdapter 并尝试使用 FragmentStatePager 适配器。没有什么改变。我使用默认的 setOffscreenPageLimit(1);
如何调用我的 ViewPager 片段方法 onDetach/onDestroy?
谢谢!
您使用的是 FragmentManager 还是子 Fragment Manager?如果您在另一个 Fragment 中创建一个 Fragment,并且您希望内部 Fragment 的行为与外部 Fragment 相同,则应从外部 Fragment 获取子片段管理器并使用它来创建内部 Fragment。参见 this。