AppCompatSpinner

AppCompatSpinner_第1张图片
Paste_Image.png

1- 在XML设置的方法

AppCompatSpinner_第2张图片
Paste_Image.png
AppCompatSpinner_第3张图片
Paste_Image.png
AppCompatSpinner_第4张图片
Paste_Image.png

使用entries属性,传入的是values文件夹下的arrays.xml内的数据

android:spinnerMode //显示模式 :popup和dialog两种
android:prompt //当显示模式为dialog时生效,作用为显示dialog的标题内容

以上就可以完成数据跟视图的绑定。
然后再代码中设置选择的监听事件即可。
监听事件:

AppCompatSpinner_第5张图片
Paste_Image.png

但是在xml中配置有缺点:
1-只能显示单一的数据,复杂的数据无法展示。
2-下拉的item布局跟没下拉的布局是一致的。

2- 在代码中设置Spinner

使用ArrayAdapter快速配置

Paste_Image.png

3- 使用自定义Adapter进行复杂item情况的设置

Paste_Image.png
AppCompatSpinner_第6张图片
Paste_Image.png

这样做就可以显示复杂的布局,并且下拉的布局跟没有下拉的布局是一样的。

//介绍几个特性                    
spinner.setPopupBackgroundResource(R.drawable.shape_bg_color_blue);//单独设置下拉框的背景    
spinner.setBackgroundResource(R.drawable.shape_bg_color_green);//单独设置没有下拉的背景
spinner.setDropDownWidth(300);//设置下拉菜单的宽度

spinner.setDropDownHorizontalOffset(100);////设置选择微调的弹出窗口中像素的水平偏移。在mode_dropdown唯一有效的;  
spinner.setDropDownVerticalOffset(100);//设置选择微调的弹出窗口中像素的垂直偏移。在mode_dropdown唯一有效的;

补充:自定义Adapter实现复杂布局
之前以为说通过自定义Adapter展示复杂布局的时候展示布局跟下拉布局只能一样其实是可以不一样的。
方法如下:

只需要再实现SpinnerAdapter即可。

然后:

AppCompatSpinner_第7张图片
Paste_Image.png

你可能感兴趣的:(AppCompatSpinner)