實現(xiàn)效果如下所示:

3. 小結
EditText配合ListPopupWindow組合實現(xiàn)Spinner的功能,使用起來倒是簡單,邏輯也挺清晰的,但是如果界面上有三四個Spinner,那不是就得把類似的代碼寫上三四遍?
其實我們并不關心內部是用ListPopupWindow或者其它的控件來實現(xiàn),也不想處理任何關于ListPopupWindow的細節(jié)。我們關心的只有Spinner的初始化、適配數(shù)據(jù)、Item選擇事件(ItemClick事件),如果可以,就再加上Spinner的點擊事件(Click或Touch事件)、自由控制Spinner的顯示時機。
那有沒有簡單易用的方法,可以直接像使用系統(tǒng)的Spinner一樣,來使用EditText和ListPopupWindow的組合呢?并且可以提供Spinner的點擊事件?答案是肯定的,詳情且看下一節(jié)。
三、自定義組合控件
在第二部分我們可以看出,我們的控件要滿足以下兩大功能:
- 像系統(tǒng)Spinner一樣簡單易用:初始化、適配數(shù)據(jù)、Item選擇事件(ItemClick事件)
- 支持點擊事件(Click或Touch事件),自由控制下拉框顯示時機
由于控件源碼稍長,就不貼出來了,有興趣可以點擊文末的Github鏈接,源碼也比較簡單,只是進行控件的組合,并提供相應的方法進行調用,下面主要介紹下使用方法。