开发中需要对EditText样式进行特殊化定义,使用selector进行获取焦点和失去焦点的样式设计:
代码实现:
searchText.setBackgroundResource(R.drawable.search_edit_selector);
所有的样式和selector都放在drawable目录;
edit_selector.xml书写方式:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/search_edittext_style" android:state_window_focused="false"/>
<item android:drawable="@drawable/search_edittext_style_focused" android:state_focused="true"/>
</selector>
search_edittext_style.xml样式书写,使用layer-list 实现:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<!-- //框为矩形 -->
<shape android:shape="rectangle" >
<!-- //用白色来填充里面 -->
<solid android:color="#BBDCE0" />
<!-- //边框是1dp的线 -->
<stroke
android:width="1dp"
android:color="#FFFFFF" />
</shape>
</item>
</layer-list>
search_edittext_style_focused.xml样式书写:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<!-- //框为矩形 -->
<shape android:shape="rectangle" >
<!-- //用白色来填充里面 -->
<solid android:color="#FFFFFF" />
<!-- //边框是1dp的线 -->
<stroke
android:width="1dp"
android:color="#FFFFFF" />
</shape>
</item>
</layer-list>
在Android开发中,为了满足特定需求,有时需要自定义EditText的样式。通过使用selector,可以实现获取焦点和失去焦点时不同的显示效果。具体实现包括在drawable目录下创建edit_selector.xml选择器文件,以及定义搜索框的普通状态和聚焦状态样式文件search_edittext_style.xml和search_edittext_style_focused.xml,使用layer-list来设置矩形框的填充颜色和边框宽度。
1003

被折叠的 条评论
为什么被折叠?



