android常用多條件篩選菜單實現思路(類似美團,愛奇藝電影票下拉菜單)
就在昨天,我的一個項目DropDownMenu被daimajia的干貨網站推薦,一天之內有了200多個star,上了github java分類的頭條,有些激動(在這個板塊關注了一年多,終于能看到自己的項目在上面),也有些惶恐(怕自己水平不夠,會誤導大家),總而言之還是很高興的,截了張圖片紀念一下,也希望以后大家多多關注支持我創作

效果還是很贊的,看下動態圖

這個項目是我在2015年7月份左右寫的,時隔半年,終于有人問津,但時隔半年,也感到這個項目有許多的不足之處,懷著激動的心情今天來講解并完善這個項目。
選擇實現方式
若是看到第一眼讓我做這個效果,我肯定會選擇PopuWindow去做,PopuWindow可以實現顯示隱藏效果也自帶陰影效果,看上去是不錯的選擇,網上也有類似庫DropDownMenu就是利用PopuWindow實現,但事實上在菜單切換的時候會很不流暢(用的不爽),思維局限的時候容易鉆死角,嘗試過甚至自定義PopuWindow,最后都毫無辦法改善那點問題,最后在網上偶遇一個demo使用View的顯示隱藏加些動畫效果就解決了我的難題,最終我放棄使用PopuWindow,利用最基本的布局實現了這個項目。
當遇到難題束手無策時,不妨暫且放下,待思路清晰時,或許它根本就不是個問題
這個項目做了哪些,沒做哪些?
這個項目并沒有實現菜單及里面的邏輯,僅僅提供了一套實現菜單的框架,菜單的樣式可完全自定義,目的是為了快速集成,又可擴展(實用),在很多時候,選擇開源框架我會將擴展性放在首位,不然再好看再炫我都不會輕易使用,當然,既炫又實用的東西我是不會嫌棄的。
實現思路
其實這個項目可以直接使用Xml布局實現,結構是這樣的

嗯,大概的結構就是這個樣子,但使用xml文件有個弊端,tab的個數不可以動態控制,menu也是一樣,tab包括menu和之間的切換和動畫處理起來都比較麻煩,我才有意將其封裝為獨立控件,只需在一處集中處理這些麻煩,提供簡單易用的api。
一些改進想法
- menu之間的切換支持手勢
- menu底部留白
- tab可滑動
- 可使用xml文件布局,卻不需要處理其他問題
- 更靈活的api
新版的DropDownMenu,敬請期待,預覽圖:
dropdownmenunew.gif
github:DropDownMenu
歡迎star、fork 、issues