【问题标题】:OnPageChangeListener - how to get the id of the fragment I've just moved off of?OnPageChangeListener - 如何获取我刚刚移出的片段的 ID?
【发布时间】:2015-12-18 23:46:44
【问题描述】:

我有一个ViewPager,其中有几个使用FragmentStatePageAdapter 的片段。

我正在寻求实现一些东西,当用户滑离片段时,我可以将输入到EditText 的数据字符串从fragment 发送到activity。

我查看了OnPageChangeListener 并尝试了几种不同的方法,但由于onPageSelected 为您提供了您要移动的fragment id,我无法获得Layout View fragment 引用 EditText 我正在滑离。也不会有任何设置片段会导致另一个片段,即Fragment 1 并不总是导致Fragment 2 等等。

我尝试使用 fragment 的 onDestroy() ,但在我刷掉 2 个 fragments 之前似乎没有调用它,所以这也没用。

有没有人对我可以用什么来实现这一点有任何建议?

谢谢

【问题讨论】:

  • 您是否为 ViewPager 使用 FragmentStatePagerAdapter?我想这个类会有某种getPosition() 函数。
  • 足够相关,但不确定是否重复。看看这个:stackoverflow.com/questions/8258759/…
  • @McAdam331 是的,使用 FragmentStatePagerAdapter。当我在片段上时,我可以毫无问题地获得当前位置,我想我的问题是我需要在调用 onPageSelected 之前将它存储在某个地方,然后通过它但没有用户与按钮或类似的交互。那有意义吗?不确定我是否可以使用 onAttach() 或 onResume() 似乎这些已经作为 FragmentStateAdapters 函数的一部分被调用,就像在 2 次滑动之后才调用 onDestroy 一样?
  • 你看到我链接的另一篇文章了吗?也许您可以创建一个自定义界面来跟踪某人访问过的最后位置/当前位置?
  • @McAdam331 啊抱歉在我打字的时候没看到,会检查一下谢谢:)

标签: android android-fragments android-viewpager


【解决方案1】:

尝试记住每个 onPageSelected() 上的每个片段的 ID。选择片段后,您会记住它的 ID。选择另一个后,在更新之前检查记住的 id。

【讨论】:

  • 你能再详细解释一下吗?在什么时候你会记住片段,你会使用 viewpager.getcurrentitem() >
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 2014-04-19
  • 2011-05-20
  • 1970-01-01
  • 2011-07-31
  • 2015-11-09
相关资源
最近更新 更多