安卓:ViewPager FragmentStatePagerAdapter获取当前视图

9

问题: 如何获取一个ViewPager FragmentStatePagerAdapter的当前View?

  1. 我已经花费了将近24小时在这上面,并且已经到处搜索适合的解决方案。
  2. 获取当前位置很容易,我已经得到了。现在需要获取当前 view
  3. FragmentStatePagerAdapter是必需的,而不是PagerAdapter

    • 此解决方案建议使用instantiateItem(View container, int position)通过 setTag findViewWithTag 。但这是为PagerAdapter设计的。
    • 然而,在FragmentStatePagerAdapter中, instantiateItem 具有 ViewGroup 参数,而不是 View 参数:instantiateItem(**ViewGroup** container, int position)

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

1个回答

4
你可以在你的 instantiateItem 方法中使用 setTag 技巧来操作返回的视图。我这里使用了一个 PagerAdapter 的 ViewPager,但是我认为这个想法对你也适用。
所以,在实例化视图时(在 PagerAdapter 中该方法也是 instantiateItem(ViewGroup container, int position)),你应该向你的视图使用 setTag
像这样:
view.setTag("view" + position);
return view; 所以,当你需要 当前视图 时,你应该这样做:View view = (View) pager.findViewWithTag("view" + pager.getCurrentItem());,其中 pager 是一个ViewPager,你可以从你的 Activity 通过参数传递到你的适配器中获取它。

抱歉回复晚了,感谢帮助。在您的“view.setTag()”中,您是如何获得“view”,而参数是“ViewGroup container”的呢? - jerrytouille
抱歉回复晚了。我所谈论的那个视图实际上是你在instantiateItem最后返回的视图。 - Rodrigo Venancio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接