Android开发之自定义Spinner下拉列表样式

2025-11-05 07:34:30

1、ArrayAdapter添加数据源。构造方法ArrayAdapter(Context,int,String[]),Context表示上下文对象或者其子对象;int表示布局文件ID,设置Spinner选项的item样式;String[]表示绑定的数组。

Android开发之自定义Spinner下拉列表样式

2、BaseAdapter添加数据源。创建MyBaseAdapter继承BaseAdapter,至少重写下面四个方法:getItem(int),getItemId(int),getCount(),getView(int,View,ViewGroup),参考上一篇《Android开发之BaseAdapter方法详细分析》详细介绍

Android开发之自定义Spinner下拉列表样式

3、xml加载数据源数组。在定义布局文件时,添加Spinner属性android:entries,该属性的作用直接引用xml文件定义的数组数据,引用的方式,创建文件res/values/arrays.xml

Android开发之自定义Spinner下拉列表样式

Android开发之自定义Spinner下拉列表样式

1、关于Spinner样式,默认情况下,不同的主题Theme,有一套独立的Spinner样式,同时对应着一套下拉列表样式,TeachCourse需要特别说明:Spinner默认样式和下拉列表样式是两个不同的概念。在Theme.Light主题下,Spinner运行下图:

Android开发之自定义Spinner下拉列表样式

2、在Theme.Holo.Light主题下,Spinner运行效果和在Theme.Light运行效果有明显的区别。有时候别人会问,为什么同一个Spinner在不同手机上显示不一样的效果,可能就是这个原因吧!如下图:

Android开发之自定义Spinner下拉列表样式

3、默认情况下Spinner有自己的样式属性,如果用户指定android:background属性值,那么默认样式和下拉列表样式将被覆盖。但为什么默认样式和下拉列表样式是两种概念呢?查看源码,在Theme.Light主题默认系统属性值:btn_dropdown.xml,如下图:

Android开发之自定义Spinner下拉列表样式

Android开发之自定义Spinner下拉列表样式

Android开发之自定义Spinner下拉列表样式

4、在上面的第一张图片中,看到默认Spinner引用系统样式android:spinnerStyle,查看该样式的路径:sdk\platforms\android-23\data\res\values,关于默认属性值可以查看类文件源代码,下图:

Android开发之自定义Spinner下拉列表样式

5、通过对比android:background中的属性值后,发现Spinner在不同版本API中展示效果,只要通过android:background属性值控制,那么我们就可以直接更改android:background中的值即可,比如,尝试更改Theme.Light主题下btn_dropdown.xml文件中的某一项,

Android开发之自定义Spinner下拉列表样式

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢