Android片段行为

时间:2014-09-26 13:51:36

标签: android android-fragments

我对片段有疑问。我创建了一个包含片段(3)的项目。 我正在使用viewpager从一个片段滑动到另一个片段。当我从一个片段(2)转到另一个片段(3)时,它不会将一个项目添加到列表中,但是当我从3然后从2然后返回1并返回它将添加该项目。这背后的原因是什么?我只想在从一个片段转到另一个片段时更新我的​​片段。

3 个答案:

答案 0 :(得分:1)

行为是因为setOffscreenPageLimit

默认值为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只是片段的数量