我正在使用此代码以编程方式滚动我的寻呼机
public void MoveNext(View view) {
pager.setCurrentItem(pager.getCurrentItem() + 1);
}
public void MovePrevious(View view) {
pager.setCurrentItem(pager.getCurrentItem() - 1);
}
代码工作完美,但过渡太快。如何引入延迟以便滚动更顺畅?
答案 0 :(得分:4)
我相信有两种方法可以实现这个目标,我已经尝试过ViewPager的fakeDrag()
,但是这种方法并不完美,幸运的是,另一种方式是,通过模拟触摸动作事件并使用{{1} }指定动画持续时间,然后使控制滚动速度变为真。
ObjectAnimator
因为它是模拟触摸事件,所以请使用适当的持续时间(小于600毫秒将是不错的)进行滚动,当滚动进行时,放下手指会停止它并导致一些错误。
答案 1 :(得分:0)
更改
pager.setCurrentItem(pager.getCurrentItem() + 1);
到
pager.setCurrentItem(pager.getCurrentItem() + 1,true);
这将调用方法setCurrentItem(int item,boolean smoothScroll),该方法将平滑滚动到提到的item
,而不是立即转换