如何使用Tablayout清除Viewpager的缓存内存

时间:2016-03-09 07:50:09

标签: java android android-studio android-fragments android-viewpager

我刚开始使用Material Design中的ViewPager和Tablayout(Android Studio附带)。我创建了5个片段,我可以根据需要使用它们进行滑动。

根据Fragment2中的用户选择,我想删除Fragment3。但是,从tablayout中删除Tab后,当滑动到第3个选项卡(在删除第3个选项卡之前是第4个选项卡)时,会显示错误的片段 - 系统在内存中显示第3个片段并显示它。 如果我销毁那个片段,那么我会得到关于&#34的例外;不能改变片段的标签"。

如何判断系统是否要使用第3个片段,或者在需要它之前将其从内存中删除,然后将其重新加载到内存中。

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

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

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