Android – PagerAdapter的页面更改回调

前端之家收集整理的这篇文章主要介绍了Android – PagerAdapter的页面更改回调前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试开发一个应用程序,它将显示数字1-10,并带有一个声音.

使用mobile.tutsplus中的示例进行横向扫描,我已经达到了所有数字正确显示的舞台,但当我们从2回来时,声音为1不会来.(最初当我的活动以1开头). 10也不会来.

解决之前的问题,1和2的声音将立即出现,我现在明白,instantiateItem()将被调用来预取下一个条目.

我想知道我应该在什么时候播放声音?目前它是在instantiateItem()中完成的,这就是为什么我没有听到它的1和10.我以为我可以在finishUpdate()中执行它,但我看到它被多次调用.

根据培训指南,对于这样一个对象的集合,应该使用FragmentStatePagerAdapter,我将尝试移动到这个对象.但我真的很想让这个工作正常.

正如你所猜到的,我是一个新手,这是我的第一个应用程序.如果需要,我可以粘贴代码.

解决方法

ViewPager有一个setOnPageChangeListener()方法,它允许您设置一个对象,当一个新页面成为用户正在查看的对象时,该对象将获得回调.

这样的事情会让你走上正确的道路:

mPageChangeListener = new OnPageChangeListener() {

    @Override
    public void onPageScrollStateChanged(int arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPageScrolled(int arg0,float arg1,int arg2) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPageSelected(int pos) {
        playSoundForPage(pos);
    }

};
yourViewPager.addOnPageChangeListener(mPageChangeListener);

然而,你必须把它放在任何你自己的ViewPager(活动或片段),而不是你的适配器.

猜你在找的Android相关文章