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

mznpcxlj  于 2022-11-13  发布在  Android
关注(0)|答案(3)|浏览(401)

我刚刚开始使用材料设计中的ViewPager和Tablayout(Android Studio附带)。我创建了5个片段,我可以根据需要使用滑动它们。
根据用户在Fragment 2中的选择,我想删除Fragment 3。但是,从选项卡布局中删除选项卡后,当滑动到第3个选项卡(在删除第3个选项卡之前是第4个选项卡)时,显示了错误的片段-系统在内存中有第3个片段并显示它。如果我销毁该片段,则会收到关于“无法更改片段的标记”的异常。
我如何告诉系统第三个片段是不使用或删除它从内存中,直到我需要它,然后重新加载到内存。

ulmd4ohb

ulmd4ohb1#

您是否正在使用FragmentPagerAdapter?如果是,您可能需要尝试FragmentStatePagerAdapter。因为它会破坏未使用的片段。如果不是,请提供一些代码,以便我们能够深入了解。

izkcnapc

izkcnapc2#

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

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

agyaoht73#

设置viewpager.offscreenPageLimit为你的碎片计数。它应该可以工作

相关问题