那我们是否可以使用别的控件,来实现相同的功能呢?答案是肯定的,我们用EditText来接收点击事件,而在请求完数据之后,使用ListPopupWindow来显示下拉选项,选择EditText的原因主要有以下几点:
- 默认在底部会有带颜色的横线,Material Design风格的EditText看起来效果很不赖
- EditText可以方便的配置上、下、左、右四个位置的小图标,我们可以在右侧放置一个向下的三角箭头,使它看起来像一个系统的Spinner
而选择ListPopupWindow则是因为:
- 可以方便的使用下拉列表
- 可以自由设置锚点
1. XML布局
布局文件依旧很简单,只要一个简单的EditText,配上一个右侧的下拉图标:
<EditText android:id="@+id/et_languages" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:drawableRight="@drawable/ic_dropdown" android:hint="Please Select..."/>
2. 代码中创建ListPopupWindow
此部分包含以下逻辑: