Android viewpageranimation

我希望在此函数调用后animation结束时收到通知:

viewPager.setCurrentItem(2, true); 

有谁知道怎么做到这一点?

我遇到过同样的问题。 以下是我的结论:

当页面实际更改时,将调用onPageSelected。 但它是在animation之前调用的。

当animation停止时,将使用状态SCROLL_STATE_IDLE调用onPageScrollStateChanged。

所以你必须结合这两个函数调用来调用你的函数。

祝你好运。

 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; } } } 

你可以使用OnPageChangeListener ..

 viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // The code you want to run when scrolling is complete } @Override public void onPageScrolled(int arg0, float arg1, int arg2) {} @Override public void onPageScrollStateChanged(int arg0) {} }); 

选择新页面时,将调用onPageSelected()。