摘要:一由此看出,是在的基礎上,是針對初始位置,是針對當前位置的初始位置的位置是再次調(diào)用,的位置仍然是是的初始位置的位置是再次調(diào)用,的位置仍然是是是滑動的計時工具類,仍需依靠調(diào)用實現(xiàn)的移動定義了一個計時器,在指定時間內(nèi),由到由到每次調(diào)用,是否在指
一.scrollTo,scrollBy
public void scrollTo(int x, int y) { if (mScrollX != x || mScrollY != y) { int oldX = mScrollX; int oldY = mScrollY; mScrollX = x; mScrollY = y; invalidateParentCaches(); onScrollChanged(mScrollX, mScrollY, oldX, oldY); if (!awakenScrollBars()) { postInvalidateOnAnimation(); } } }
public void scrollBy(int x, int y) { scrollTo(mScrollX + x, mScrollY + y); }
由此看出,scrollBy是在scrollTo的基礎上, scrollTo是針對初始位置,scrollBy是針對當前位置
View的初始位置(0,0), scrllTo(100,100), View的位置是(100,100),再次調(diào)用scrllTo(100,100), View的位置仍然是是(100,100)
View的初始位置(0,0), scrllBy(100,100), View的位置是(100,100),再次調(diào)用scrllBy(100,100), View的位置仍然是是(200,200)
2.Scroller
startScroll(startX, startY, dx, dy, duration)
computeScrollOffset
View.computeScroll()
Scroller是滑動的計時工具類,仍需依靠調(diào)用scrollTo實現(xiàn)View的移動
startScroll定義了一個計時器,在指定時間內(nèi),x由startX到dx,y由startY到dy;
computeScrollOffset() 每次調(diào)用,是否在指定時間內(nèi),如在,根據(jù)時間設置Scorller.mCurrX,mCurrY;
computeScroll是View的空方法,在draw中調(diào)用,也就是會被不停的調(diào)用,所以重寫computeScroll,調(diào)用computeScrollOffset,獲取mCurrX,mCurrY,設置scrollTo,完成移動;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/70774.html
摘要:內(nèi)部是調(diào)用效果是移動的內(nèi)容,因此需要在的父控件中調(diào)用。和的情況相似,手機屏幕向下移動,為正值手機屏幕向上移動,為負值。 目錄介紹 8.0.0.1 簡述Android的事件分發(fā)機制?dispatchTouchEvent方法的作用是什么?說下View和ViewGroup分發(fā)事件? 8.0.0.2 onInterceptTouchEvent方法作用是什么?onTouchEvent的方法的作...
摘要:滑動抖動問題分析向上滾動無法被外部中斷和子的聯(lián)動時通過實現(xiàn)的,使用的繼承了。當產(chǎn)生的向上的沒有結(jié)束時,又送來向下的,抖動就產(chǎn)生了。反射獲取私有的屬性,考慮以后變量名修改的問題及一下版本可能是及以上版本然后在攔截事件里處理邏輯。 目錄介紹 01.CoordinatorLayout滑動抖動問題描述 02.滑動抖動問題分析 03.自定義AppBarLayout.Behavior說明 04....
閱讀 1748·2023-04-25 16:28
閱讀 684·2021-11-23 09:51
閱讀 1467·2019-08-30 15:54
閱讀 1149·2019-08-30 15:53
閱讀 2816·2019-08-30 15:53
閱讀 3413·2019-08-30 15:43
閱讀 3250·2019-08-30 11:18
閱讀 3262·2019-08-26 10:25