AutoCompleteTextView修改下拉列表样式去点击时背景AutoCompleteTextView是Android提供的⼀个输⼊⾃动匹配⽂本输⼊⼯具,使⽤这个控件可以让开发⼈员快速的完成输⼊的信息匹配,例如匹配搜索历史和搜索模糊匹配等等
然⽽这个控件在我们使⽤的的时候⽐较尴尬的地⽅是它的样式实在不怎么样,所以当我们修改的时候会遇到很多⿇烦,本⽂仅以笔者⾃⼰遇到的困难点解决给出意见,希望能给后来者少⾛⼀些弯路
⾸先了解⼀下AutoCompleteTextView其实是⼀个editview和popupwindow,再通过filter来进⾏过滤的组合控件,所以我们在写它的adapter需要继承baseadapter同时实现Filterable接⼝
当我们写好的适配器并调试成功后会发现弹出的popupwindow会有⼀层⿊⾊的阴影,那是应为popup的style时系统默认的主题,所以如果我们直接修改AutoCompleteTextView的background时只会改变editview的样式,如果想要修改popup的效果需要给AutoCompleteTextView设置style,在style中修改popup的样式就可以达到我们的⽬的了
然后设置给AutoCompleteTextView就可以了
但是当我们点击的时候会发现popup中的listview的默认背景没有去掉,这⾥我们就可以使⽤AutoCompleteTextView
的android:dropDownSelector⽅法来设置来设置我们需要的颜⾊就可以了
注意:
如果我们给adapter设置的itemview时有背景的那么会导致我们给popup设置的描边被遮住,所以最好不要给item设置背景⾊
另附上AutoCompleteTextView给我们提供可以操作popup的⽅法,笔者在这⾥建议⼤家在写代码的时候最好能考虑的多控件的组合使⽤和样式设置,这样可以少⾛不少弯路,想清楚了再写代码,负责就会跟笔者⼀样忙了半天结果发现是⼏句话就可以解决的事情
android:completionHint 下拉列表下⾯的说明性⽂字
android:completionThreshold 弹出下来列表的最⼩字符个数
android:dropDownAnchor 下拉列表的锚点或挂载点
android:dropDownHeight 下拉列表⾼度
android:dropDownWidth 下拉列表宽度
android:dropDownHorizontalOffset 下拉列表距离左边的距离
android:dropDownSelector 下拉列表被选中的⾏的背景
在代码⾥可以设置setDropDownBackgroundResource我们进⾏快速的设置
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论