Scroller解析

xiaoxiao2021-02-28  98

解决什么问题?出现的使命是?

View.scrollTo及scrollBy方法是促使View内容的滑动,但其结果是瞬间达到目标位置,很生硬。 Scroller就是提供一个策略来让这种生硬的移动变的平滑和自然。

解决的过程是?

基本思想

将需要平移的距离切分成小段小段的,在给定时间内逐小段的移动,这样动画效果就出来了。

代码实现

/** * 新增方法 */ public void smoothScrollTo(int targeX, int targetY, int time) { int deltaX = targeX - getScrollX(); int deltaY = targetY - getScrollY(); mScroller.startScroll(getScrollX(), getScrollY(), deltaX, deltaY, time); invalidate(); } @Override public void computeScroll() { if (mScroller.computeScrollOffset()) { this.scrollTo(mScroller.getCurrX(), mScroller.getCurrY()); invalidate(); } }
转载请注明原文地址: https://www.6miu.com/read-47185.html

最新回复(0)