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

來源:互聯網
上載者:User

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的調用機制關係吧都明白吧,如有問題歡迎給我留言,謝謝大家一直以來對雲棲社區網站的支援。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.