use*_*739 6 animation android android-viewpager
我希望在此函数调用后动画结束时收到通知:
viewPager.setCurrentItem(2, true);
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?
小智 27
我遇到过同样的问题.以下是我的结论:
当页面实际更改时,将调用onPageSelected.但它是在动画之前调用的.
当动画停止时,将使用状态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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Ole*_*Ole -1
您可以使用 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) {}
});
Run Code Online (Sandbox Code Playgroud)
当选择新页面时,将调用 onPageSelected()。
| 归档时间: |
|
| 查看次数: |
4829 次 |
| 最近记录: |