遇到问题描述:
spinner样式的使用,系统自带的不能说是一般的丑,并且跟你设计的风格完全不合拍,但对于spinner通过改变背景
图片的方式使其看起来更加的美观,更符合我们的审美设计。我遇到的问题是,对于item和spinner都设计为同一个背景图片,如果不同,当选择
item之后,item的值会直接把spinner中图片覆盖掉,使得spinner得不到预期的显示,但spinner和item中有相同的背景图片有不太合适。问题就是
使得spinner和spinner中item有不同的背景图片?
看一个效果图当点击spinner的时候显示的下拉效果
spinner中的item通过setadapter来进行动态添加,api本身就有一个spinneradapter,重写其中getdropdownview就好了!
1、spinner由两个layout view来自定义,分别负责显示的spinner(如图一部分)和点击后显示的item(如图二部分)的一个布局情况
2、重写adapter方法(网上很多的arrayadapter,但都引用的android.r.layout.simple_spinner_item.xml系统自带),一般是继承baseadapter重写 getView()和getdropdownview这
两个方法。getview修改了spinner中显示的样式(即layout的布局),getdropdownview决定了item中显示的样式。
所有认识清楚了这两点定义自定义的spinner也不是什么难题。
本效果图的作法:
1、定义spinner,设置背景为带有三角标的图片作为背景色。
2、对于getView中和getdropdownview中使相同代码(只是两处的使用layout不一样),layout的不同点也仅仅是背景色不同(getview中的layout没有背景图片,getdropdownview设定了灰色背景图片)
本文主要解决了spinner自定义样式的的问题,对于spinner有了更深的认识。每个人遇到的问题不一样,解决方法也不唯一,仅供参考。
欢迎拍砖!