如何使用选项卡布局清除视图页的缓存内存



我刚开始使用Material Design的ViewPager和Tablayout(随Android Studio一起提供)。我创建了 5 个片段,我可以根据需要使用滑动它们。

根据 Fragment2 中的用户选择,我想删除 Fragment3。但是,从选项卡布局中删除选项卡后,当滑动到第三个选项卡(这是删除第三个选项卡之前的第 4 个选项卡)时,会显示错误的片段 - 系统在内存中具有第三个片段并显示它。如果我销毁该片段,则会收到有关"无法更改片段标签"的异常。

我如何告诉系统不使用第 3 个片段或将其从内存中删除,直到我需要它,然后将其重新加载到内存中。

你使用的是 FragmentPagerAdapter 吗?如果是这样,您可能需要尝试 FragmentStatePagerAdapter。因为它会破坏未使用的碎片。如果没有,请提供一些代码,以便我们能够更深入地研究。

我也有同样的问题,那就是,虽然我更新了适配器的数据,但视图仍然没有更新!但是,我发现,一旦我更新了适配器的数据并调用了.notifDataSetChange(),我再次调用.setsAdapter(m_PagerAdapter)。这对我有用:)...

//
// update the data of adapter ...
//
m_PagerAdapter.notifyDataSetChanged();
m_vpgItems.setAdapter(m_PagerAdapter);

将viewpager.offscreenPageLimit设置为你的片段计数。它应该工作

最新更新