為什么scrollerTo滑動(dòng)方向是反的?
scrollTo(x,y)
—>
int oldX = mScrollX;
int oldY = mScrollY;
mScrollX = x;
mScrollY = y;
invalidate(true);
—> draw()方法調(diào)用
—>invalidate(int l, int t, int r, int b)
—>
final int scrollX = mScrollX;
final int scrollY = mScrollY;
tmpr.set(l - scrollX, t - scrollY, r - scrollX, b - scrollY);
結(jié)論:當(dāng)scrollTo 傳入 正數(shù)? 向左(向下)
當(dāng)傳入負(fù)數(shù),減去負(fù)數(shù)==加上正數(shù) ,向右(向上)
Scroller是什么?作用?用法
這個(gè)類封裝了滑動(dòng),響應(yīng)手指滑動(dòng),但它們不會(huì)自動(dòng)將這些位置應(yīng)用到您的View中。開發(fā)者的責(zé)任是獲得和應(yīng)用新的坐標(biāo)率,將使?jié)L動(dòng)動(dòng)畫看起來平滑。
基礎(chǔ)用法:
創(chuàng)建Scroller的實(shí)例
調(diào)用startScroll()方法來初始化滾動(dòng)數(shù)據(jù)并刷新界面
重寫computeScroll()方法,并在其內(nèi)部完成平滑滾動(dòng)的邏輯
getCurrX() 當(dāng)前的滑動(dòng)位置
getScrollX()是什么?
returen? mScrollX
返回view的左邊緣? 如果getScrollX()小于0超出了屏幕,不考慮
MotionEvent.ACTION_MOVE返回false和true,分別有什么影響?
拿到最小滑動(dòng)距離怎么判斷?
事件分發(fā),大概流程,activity,viewgroup,view分別返回值對(duì)事件的影響
VelocityTracker是什么?作用?用法
用法:VelocityTracker維護(hù)了一個(gè)Pool池,池化技術(shù)
初始化VelocityTracker.obtain()