Android~Fragment的替代方案

最近在review別人的代碼,使用了fragment實現了新UI。在這個過程中又充電學習安卓新的技術,因爲又切回到熟悉的移動互聯網開發了。

  • 方案一,安卓原生View管理替換。View是安卓所有控件的基類,這種方法簡單有效,但分層不清和業務複雜就會顯得低效。尤其我們要徹底掌握View的實現原理和相關方法!
LinearLayout layout  = new LinearLayout(this);
layout.addView(childView); //添加視圖
layout.removeAllViews(); //移除視圖
  • 方案二,使用Fragment模塊化管理視圖。Fragment使用起來確實很便利,目前它的包名都被谷歌替換爲androidx.fragment,之前總是遇到app.fragment和v4.fragment相互衝突的情況。Fragment很適合一個APP中有很多模塊是通用,然後APP框架經常要切換不同的模塊的情況,比如我們經常還會看到viewpage和fragment搭配使用。
  • 方案三,嘗試Shatter或者UIKit-ViewBlockShatter之前叫作UIBlock,ViewBlock它兩都是個人開發者維護,大家可以閱讀一波源碼對比分析一下是實現思路。我們當然還可以嘗試Square的一些開源庫mortar和flow等。

Shatter是一個代替fragment來劃分ui模塊的庫。它主要完成的工作是管理ui區塊,並且能和activity保持完全相同的生命週期,沒有任何學習成本。
Shatter對於單頁面多ui模塊的結構有着很好的支持,非常適合用來降低複雜activity的複雜度。但因爲設計的關係,它的生命週期僅僅被activity觸發的,所以不會有完整的生命週期的概念。

ViewBlock簡介:快速代替fragment的輕量級解耦類,能對複雜佈局劃分Block…
項目中用 fragment 來降低 activity 的複雜度,但 fragment 帶來的各種奇葩問題讓我想死。ViewBlock 與 View 綁定在一起大大降低 activity 的複雜度。

更多延伸閱讀
1、Android Fragment 替代方案
2、尋找Fragment的替代品的嘗試
3、Shatter — Fragment的替代選擇方案

發佈了99 篇原創文章 · 獲贊 185 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章