Я хотел бы быть информированным, когда анимация заканчивается после этого вызова функции:Android ViewPager анимация
viewPager.setCurrentItem(2, true);
Кто-нибудь знает, как это сделать?
Я хотел бы быть информированным, когда анимация заканчивается после этого вызова функции:Android ViewPager анимация
viewPager.setCurrentItem(2, true);
Кто-нибудь знает, как это сделать?
Вы можете использовать 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() вызывается.
Я столкнулся с той же проблемой. следующий мой вывод:
Когда страница будет фактически изменена наPageSelected будет вызываться. Но это называется перед анимацией.
Когда анимация остановлена, 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;
}
}
}
Из документов onPageSelected() - этот метод будет вызываться при выборе новой страницы. ** Анимация не обязательно завершена **. http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html#onPageSelected(int) – djdmbrwsk