我想在这个函数调用后动画结束时得到通知:
viewPager.setCurrentItem(2, true);
有谁知道如何做到这一点?
最佳答案
我遇到了同样的问题。 以下是我的结论:
当页面实际更改时,将调用 onPageSelected。 但它是在动画之前调用的。
当动画停止时,onPageScrollStateChanged 将被调用,状态为 SCROLL_STATE_IDLE。
所以你必须结合这两个函数调用来调用你的函数。
祝你好运。
private class PageChangeListener implements OnPageChangeListener {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
isPageChanged = true;
}
@Override
public void onPageScrollStateChanged(int state) {
switch (state) {
case ViewPager.SCROLL_STATE_IDLE:
if (isPageChanged) {
updateCurrentPage();//this will be called when animation ends
isPageChanged = false;
}
break;
case ViewPager.SCROLL_STATE_DRAGGING:
break;
case ViewPager.SCROLL_STATE_SETTLING:
break;
}
}
}
关于Android viewpager 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10892403/