Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 詳解Android Scroller與computeScroll的調用機制關系

詳解Android Scroller與computeScroll的調用機制關系

編輯:關於Android編程

Android ViewGroup中的Scroller與computeScroll的有什麼關系?

答:沒有直接的關系

知道了答案,是不是意味著下文就沒必要看了,如果說對ViewGroup自定義控件不感興趣,可以不用看了。

1.Scroller到底是什麼?

答:Scroller只是個計算器,提供插值計算,讓滾動過程具有動畫屬性,但它並不是UI,也不是滑動輔助UI運動,反而是單純地為滑動提供計算。

無論從構造方法還是其他方法,以及Scroller的屬性可知,其並不會持有View,輔助ViewGroup滑動

2.Scroller只是提供計算,那誰來調用computeScroll使得ViewGroup滑動

答:computeScroll也不是來讓ViewGroup滑動的,真正讓ViewGroup滑動的是scrollTo,scrollBy。computeScroll的作用是計算ViewGroup如何滑動。而computeScroll是通過draw來調用的。

3.computeScroll和Scroller都是計算,兩者有啥關系?

答:文章開始已作答,沒有直接的關系。computeScroll和Scroller要是飛得拉關系的話,那就是computeScroll可以參考Scroller計算結果來影響scrollTo,scrollBy,從而使得滑動發生改變。也就是Scroller不會調用computeScroll,反而是computeScroll調用Scroller。

4.滑動時連續的,如何讓Scroller的計算也是連續的?

這個就問到了什麼時候調用computeScroll了,如上所說computeScroll調用Scroller,只要computeScroll調用連續,Scroller也會連續,實質上computeScroll的連續性又invalidate方法控制,scrollTo,scrollBy都會調用invalidate,而invalidate回去觸發draw,從而computeScroll被連續調用,綜上,Scroller也會被連續調用,除非invalidate停止調用。

5.computeScroll如何和Scroller的調用過程保持一致。

computeScroll參考Scroller影響scrollTo,scrollBy,實質上,為了不重復影響scrollTo,scrollBy,那麼Scroller必須終止計算currX,currY。要知道計算有沒有終止,需要通過mScroller.computeScrollOffset()

以上所述還算比較清楚,相信大家對Android Scroller與computeScroll的調用機制關系吧都明白吧,如有問題歡迎給我留言,謝謝大家一直以來對本站網站的支持。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved