Feed流、Fragment懶加載,如何做出高級感的UI? / 自定義View / / 爲什麼要自定義View / / Fragment 懶加載 / / UI卡頓 /

在Android系統中,界面中所有能看到的元素都是View,所有的UI元素都是View的子類,Android官方爲開發者提供了許多豐富的UI控件。

一個Android工程師是否高級,最直觀的就是看他做的UI高不高級。

很多Android開發接到產品的UI需求之後,第一反應就是先回憶在哪裏見過這個效果,然後照抄大型app代碼。但由於不懂原理,很容易出現各種問題。

真正高級的工程師也會使用別人的代碼,但是往往能夠根據產品的UI效果去完全自定義這個效果,同時也能夠解決api使用不當而產生的顯示問題。

要做出高級感的UI,自定義View那你是必須掌握的。

/ 自定義View /

自定義View就是通過繼承View或者View的子類,並在新的類裏面實現相應的處理邏輯(重寫相應的方法),以達到自己想要的效果。

/ 爲什麼要自定義View /

產品經理經常會把拿着別人的產品效果說,ios這個效果不錯,我們也要實現!

Android系統爲開發者提供了很多控件,但是系統內置的View無法實現我們的業務需求,這時候就需要我們自定義View。

自定義View其實並不難,爲什麼呢?因爲自定義View無非就是顯示+交互:顯示由onMeasure->onLayout->onDraw的整個流程就將顯示整個流程處理完了,而交互則是touch事件的處理;另外其他的一切你比如Canvas,Animation,Paint都是圍繞着draw來進行的,所以我們需要搞懂其中的根本原理。

/ Fragment 懶加載 /

Feed 流應用作爲APP最常見的信息展示方式,被廣泛應用之後,Fragment 懶加載也成了Android開發必知必會的技術。我們學習的時候,常見的都是一層Activity+ViewPager的UI層次,但是隨着產品頁面越來越複雜,應用首頁的頁面外層是一個ViewPager內部可能還嵌套着一層ViewPager,這就難倒了很多Android開發者。

/ UI卡頓 /

我們開發的應用經常會發生UI卡頓。很多人看到卡頓可能就認爲是渲染的問題,其實不一定,因爲這有可能是算法和JVM帶來的問題。那我們該如何排查改進呢?

從自定義談起,實現一個京東自定義ViewGroup;

系統研究FrameLayout與ViewPager的源碼;

通過源碼發現ViewPager設計過程中的幾個問題,解決使用不當帶來的顯示問題和性能問題;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章