9

问题:如何获取 ViewPager FragmentStatePagerAdapter 的当前视图?

  1. 我在这上面花了将近 24 小时,到处寻找合适的解决方案。
  2. 获取当前位置很容易,我已经掌握了。这是获取当前视图
  3. FragmentStatePagerAdapter是必需的,不是PagerAdapter

    • 该解决方案建议通过setTagfindViewWithTaginstantiateItem(View container, int position)。这适用于 PagerAdapter。
    • 但是在FragmentStatePagerAdapterinstantiateItem有一个ViewGroup参数而不是 View参数:instantiateItem(**ViewGroup** container, int position)

所以我希望这不是不可能的,是吗?请帮忙!

4

1 回答 1

4

您可以将setTag技巧与您在instantiateItem方法中返回的视图一起使用。

在这里,我将 ViewPager 与 PagerAdapter 一起使用,但我认为这个想法也可能对您有用。

因此,当您实例化您的视图时(在 PagerAdapter 中,该方法也是instantiateItem(ViewGroup container, int position)),您应该在视图中使用setTag 。

像这样:
view.setTag("view" + position);
return view;

因此,当您需要当前视图时,您应该这样做:View view = (View) pager.findViewWithTag("view" + pager.getCurrentItem());,其中pager是 ViewPager,您可以通过参数将其从 Activity 传递给适配器。

于 2013-07-15T19:43:36.530 回答