如何获取ViewPager的当前View,这是onPageSelected中向用户显示的一个视图

斯威夫特

我使用这种方法来获取ViewPager的当前View:

private class OuterAdapter extends PagerAdapter{

    private SwipingVideoPage currentPage;

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        SwipingVideoPage page = new SwipingVideoPage();
        container.addView(page);
        return page;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
    }

    @Override
    public void setPrimaryItem(ViewGroup container, int position, Object object) {
        currentPage = (SwipingVideoPage)object;
        super.setPrimaryItem(container, position, object);
    }

    public SwipingVideoPage getCurrenPage() {
        return currentPage;
    }
}

我想我可以打电话ViewPager.getAdapter.getCurrentPage()得到当前的看法。但我发现它不适用于ViewPager.OnPageChangeListener.onPageSelected()

private class OuterChangeListener implements ViewPager.OnPageChangeListener {

    @Override
    public void onPageSelected(int position) {
        ((OuterAdapter)outerViewPager.getAdapter()).getCurrenPage()  //this returns the previous shown view, not the right one
    }
}

也许onPageSelected()以前叫setPrimaryItem(),这是正确的吗?

以及如何获得ViewPage主要观点onPageSelected()

斯威夫特

就像@Mohammad Fareed所说的那样,我没有找到直接在中获取当前页面的方法ViewPager

所以我用这种方式来解决问题:

private Map<Integer, View> pageMap;     //records all the pages in the ViewPager
private SwipingVideoPage currentPage;

private class OuterAdapter extends PagerAdapter{

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        SwipingVideoPage page = new SwipingVideoPage();
        container.addView(page);
        pageMap.put(position, page);    //add page
        return page;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
        pageMap.remove(position);      //remove page which is removed from ViewPager
    }
}

private class OuterChangeListener extends ViewPager.SimpleOnPageChangeListener {

    @Override
    public void onPageSelected(int position) {
        currentPage = pageMap.get(position);    //get current page
    }
}

我在我的项目中使用了这些代码,并且到目前为止效果很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从一个视图模型的当前实例的另一个实例中获取属性的值

来自分类Dev

从一个视图模型的当前实例的另一个实例中获取属性的值

来自分类Dev

如何获取显示在viewPager上的当前图像的ID

来自分类Dev

如何在一个查询中获取当前ID的当前ID和先前ID(MySQL)

来自分类Dev

如何从用户(这是一个列表)获取输入并将值存储在C ++中的数组中?

来自分类Dev

如何更新viewpager的当前视图?

来自分类Dev

如何使用django向用户显示两个视图

来自分类Dev

在python中如何获取Windows中的当前用户SID?

来自分类Dev

在外壳标题中显示一个工具栏,该工具栏绑定到Durandal中的当前视图模型

来自分类Dev

如何从另一个控制器获取模型的当前ID?

来自分类Dev

如何在Android中获取用户的当前位置

来自分类Dev

如何获取CloudKit中的当前用户ID?

来自分类Dev

如何获取服务中的当前登录用户

来自分类Dev

如何在Android中获取用户的当前位置

来自分类Dev

如何从用户获取PHP中的当前日期/时间

来自分类Dev

如何为django中的数据库中的当前数据创建一个表单?

来自分类Dev

如何在android中显示一个人的当前年龄(25岁11个月20天)?

来自分类Dev

Laravel 4:更新行时如何从列的当前值中减去一个?

来自分类Dev

如何检测集合中的当前元素是否为最后一个元素?

来自分类Dev

如何将行中的当前列值与上一个值相加?

来自分类Dev

如何在tmux中的当前目录上创建一个新窗口?

来自分类Dev

java - 如何根据当前日期(包括Java中的当前日期)获取过去三个月的第一个日期和最后一个日期?

来自分类Dev

获取设计中的当前用户ID

来自分类常见问题

如何获取SwiftUI View的当前颜色?

来自分类Dev

如何获取SwiftUI View的当前颜色?

来自分类Dev

获取ViewPager的当前位置

来自分类Dev

从 mysql 表中获取不同的行,这是特定于用户 ID 的最后一个条目

来自分类Dev

如何获取图像视图的clickevent,但是imageview在另一个布局中作为当前布局的标题

来自分类Dev

壁画:使用Drawee中显示的当前图像作为占位符,以用于下一个请求

Related 相关文章

  1. 1

    从一个视图模型的当前实例的另一个实例中获取属性的值

  2. 2

    从一个视图模型的当前实例的另一个实例中获取属性的值

  3. 3

    如何获取显示在viewPager上的当前图像的ID

  4. 4

    如何在一个查询中获取当前ID的当前ID和先前ID(MySQL)

  5. 5

    如何从用户(这是一个列表)获取输入并将值存储在C ++中的数组中?

  6. 6

    如何更新viewpager的当前视图?

  7. 7

    如何使用django向用户显示两个视图

  8. 8

    在python中如何获取Windows中的当前用户SID?

  9. 9

    在外壳标题中显示一个工具栏,该工具栏绑定到Durandal中的当前视图模型

  10. 10

    如何从另一个控制器获取模型的当前ID?

  11. 11

    如何在Android中获取用户的当前位置

  12. 12

    如何获取CloudKit中的当前用户ID?

  13. 13

    如何获取服务中的当前登录用户

  14. 14

    如何在Android中获取用户的当前位置

  15. 15

    如何从用户获取PHP中的当前日期/时间

  16. 16

    如何为django中的数据库中的当前数据创建一个表单?

  17. 17

    如何在android中显示一个人的当前年龄(25岁11个月20天)?

  18. 18

    Laravel 4:更新行时如何从列的当前值中减去一个?

  19. 19

    如何检测集合中的当前元素是否为最后一个元素?

  20. 20

    如何将行中的当前列值与上一个值相加?

  21. 21

    如何在tmux中的当前目录上创建一个新窗口?

  22. 22

    java - 如何根据当前日期(包括Java中的当前日期)获取过去三个月的第一个日期和最后一个日期?

  23. 23

    获取设计中的当前用户ID

  24. 24

    如何获取SwiftUI View的当前颜色?

  25. 25

    如何获取SwiftUI View的当前颜色?

  26. 26

    获取ViewPager的当前位置

  27. 27

    从 mysql 表中获取不同的行,这是特定于用户 ID 的最后一个条目

  28. 28

    如何获取图像视图的clickevent,但是imageview在另一个布局中作为当前布局的标题

  29. 29

    壁画:使用Drawee中显示的当前图像作为占位符,以用于下一个请求

热门标签

归档