我对片段有疑问。我创建了一个包含片段(3)的项目。 我正在使用viewpager从一个片段滑动到另一个片段。当我从一个片段(2)转到另一个片段(3)时,它不会将一个项目添加到列表中,但是当我从3然后从2然后返回1并返回它将添加该项目。这背后的原因是什么?我只想在从一个片段转到另一个片段时更新我的片段。
答案 0 :(得分:1)
默认值为1.且不能为0.
当setOffscreenPageLimit的vaule是默认值,即1时,将加载片段两侧的一个页面。因此,当您从B更改数据然后转到C时,C已经加载..因此不会反映更改。另一方面,如果您从B更改数据然后转到A,则将卸载C.现在,如果你去B,然后C加载并重新刷新。希望我能解释一下这里发生的事情......
当您在两个页面之间滑动时,当两个页面都需要可见时会有一个点,因为当其中一个页面之一甚至不存在时,您无法在两个页面之间滑动。
也来自评论(如何使用它):mViewPager.setOffscreenPageLimit(2);
\将在当前片段的两侧加载2个片段。默认值为1.(这不是你的问题的答案)
编辑:
实际上我正在做的是。在我的片段A或B中有列表。并且对于每个项目onclick都有一个活动细节。当我打开任何项目的细节时(即在新活动中),我可以添加/修改数据(更改反映在数据库中)。现在,当我按下完成活动并返回主要活动时,片段A B和C ..在Resume上调用所有片段。在我的片段C的简历中,我将notifyDataSetChanged调用到我的适配器..所以调用everythime onResume。 C中的列表已更新。
我不确定它是否是一个很好的解决方案,但它对我有用。
答案 1 :(得分:0)
设置OffScreenPage限制值。在你的情况下你有3个碎片然后你必须设置值= 3。因此,当你回到片段时将被保留。
答案 2 :(得分:0)
你的viewPager.setOffScreenPageLimit(3)这里3只是片段的数量