Android重構與設計之路,從整理提示對話框彈窗開始
封裝一個獨立彈窗Module,這里的彈窗包括普通的Dialog方式彈框和WindowManager方式彈窗。提供一種管理項目里面彈窗的方案,便于后期修改和維護。
首先描述一個在大項目中普遍存在的一個現象:由于項目的功能多,負責功能的人不同,當功能中需要一個普通的確定取消對話框時,大部分人都選擇自己寫了一個,自己new一個獨立的彈窗出來。這樣做的好處有以下幾個:
- 代碼邏輯獨立,自己寫的代碼自己能控制
- 快速方便,便于修改,便于滿足各種奇怪的需求
可是這個做法導致項目中存在大量的代碼冗余,大量的分散的彈窗,短期內一般也不會有什么問題,如果這個時候項目要重構,要修改所有彈窗的樣式,接下來面臨幾個問題:
- 不知道有多少個彈窗
- 不知道代碼中什么地方會有彈窗
- 不知道彈窗寫法都有哪些(樣式不知道,彈出的方式是Dialog還是WindowManager)
- 改動點多,工作量大,風險大
本文就是針存在以上彈窗特點的項目,提供一種對話框的管理方式,提供一種比較好維護的實現方式(不一定是最好的實現方式)。由于代碼量大,本文只講實現設計思想和實現方式,具體源碼可以直接從github下載查看,后面會提供地址。
本文實現彈窗效果動畫演示
本文中Dialog彈窗樣式總共實現了12種,但是這個不能作為一個標準,要根據自己項目的實際情況,自己做分類,當然大部分簡單的項目用本文提供的Module就可以直接使用。