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

Spinner控件,展示下拉列表,默认使用系统的样式。Spinner默认样式包括:Spinner本身样式和Spinner下拉样式(下拉列表样式),APP开发的需要,学会如何更改Spinner默认样式,制作出好看漂亮的下拉列表。

一、熟悉Spinner绑定数据源常用方法

  • 01

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

  • 02

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

  • 03

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

二、自定义Spinner列表样式

  • 01

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

  • 02

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

  • 03

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

  • 04

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

  • 05

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

(0)

相关推荐