gpt4 book ai didi

android - PagerAdapter 的页面更改回调

转载 作者:可可西里 更新时间:2023-11-01 19:05:45 27 4
gpt4 key购买 nike

我正在尝试开发一个应用程序,它将显示数字 1-10 以及该数字的声音。

使用 mobile.tutsplus 中的示例进行水平滑动,我已经达到了所有数字都正确显示但是当我们从 2 返回时 1 的声音不会出现的阶段。 (它最初出现在我的 Activity 以 1 开始时)。 10 也不会出现。

在解决了之前 12 的声音会同时出现的问题之后,我现在明白了 instantiateItem() 将被调用预取下一个条目。

我想知道我应该在什么时候播放声音?目前它是在 instantiateItem() 中完成的,这就是为什么我没有听到 110 的原因。我以为我可以在 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( Activity 或 fragment )而不是您的适配器的任何地方。

关于android - PagerAdapter 的页面更改回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15014512/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com