AutocompleteTextView获焦自定义边框颜色,修改颜色需操作XML还是Java?
为AutocompleteTextView设置焦点边框颜色:操作资源XML文件即可
嘿,这个问题很清晰——你只需要操作资源XML文件就能实现,完全不用改动主Java文件(除非你有动态切换颜色的特殊需求,常规情况XML就足够啦)。
你已经在布局XML里给AutocompleteTextView设置了android:background="@drawable/write_text",接下来只需要修改或创建这个write_text.xml drawable文件,通过状态选择器来定义焦点状态下的边框样式就行:
- 打开
res/drawable/write_text.xml(如果没有就新建一个) - 编写状态选择器代码,区分「获得焦点」和「默认」状态的边框样式:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 获得焦点时的样式 --> <item android:state_focused="true"> <shape android:shape="rectangle"> <!-- 这里替换成你想要的焦点边框颜色 --> <stroke android:width="2dp" android:color="#FF4081" /> <solid android:color="#FFFFFF" /> <!-- 输入框背景色 --> <corners android:radius="4dp" /> <!-- 可选:添加圆角 --> </shape> </item> <!-- 默认状态样式 --> <item> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="#CCCCCC" /> <!-- 默认边框色 --> <solid android:color="#FFFFFF" /> <corners android:radius="4dp" /> </shape> </item> </selector>
这样设置后,当你的start_box获得焦点时,就会自动显示你指定的边框颜色,所有UI样式的控制都在XML里完成,Java代码不需要做任何额外修改~
内容的提问来源于stack exchange,提问作者Mark Caveneau
相关产品推荐
相关产品推荐

