【问题标题】:Android: ViewPager FragmentStatePagerAdapter get current ViewAndroid:ViewPager FragmentStatePagerAdapter 获取当前视图
【发布时间】:2013-07-16 03:43:36
【问题描述】:

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

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

    • This solution 通过 instantiateItem(View container, int position) 建议 setTagfindViewWithTag。这是为 PagerAdapter 准备的。
    • 但是在FragmentStatePagerAdapter 中,instantiateItem 有一个 ViewGroup 参数 not View 参数:instantiateItem(**ViewGroup** container, int position)

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

【问题讨论】:

    标签: android android-viewpager fragmentstatepageradapter


    【解决方案1】:

    您可以将 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 到你的适配器。

    【讨论】:

    • 抱歉回复晚了,感谢您的帮助。当参数是“ViewGroup 容器”时,您是如何在“view.setTag()”中获得“视图”的?
    • 抱歉,更晚才回复。实际上,我所说的视图是您在 instantiateItem 末尾返回的视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    相关资源
    最近更新 更多