EditText 下划线下方的文本属性
问题出现的原因:
使用android:backgroundTint属性来设置EditText下划线的颜色,但是该属性只在API 21及以上的版本上有效,不支持向后兼容。
解决方法:
1. 对于API小于21的设备,可以使用支持库中的AppCompatEditText,并使用app:backgroundTint属性来设置下划线的颜色。
2. 在API小于21的设备上,可以使用android:background属性来设置下划线的颜色。
3. 为了使android:backgroundTint属性在API 21以下的版本上生效,需要使用app命名空间而不是android命名空间。
以下是一种解决方法:
在EditText的xml布局中,使用android:backgroundTint=""属性来设置下划线的颜色。对于API小于21的设备,使用AppCompatEditText,并使用app:backgroundTint=""属性来设置下划线的颜色。确保在API 21以下的版本中,使用了app命名空间而不是android命名空间。
参考链接:http://stackoverflow.com/a/40889531/1276636
问题:EditText文本下方出现下划线的原因以及解决方法
原因:在EditText的每个状态(焦点、启用、激活)下,需要使用不同的背景图像而非颜色。
解决方法:
1. 访问网站http://android-holo-colors.com/,可以获取Holo主题中许多组件的图像。选择“EditText”和所需的颜色,在页面底部可以预览。
2. 下载.zip文件,并将资源(图像和XML文件)复制粘贴到项目中。
3. 如果XML文件名为:apptheme_edit_text_holo_light.xml(或类似名称):
- 打开“styles.xml”文件,在其中添加自定义EditText样式:
<style name="EditTextCustomHolo" parent="android:Widget.EditText"> <item name="android:background">/apptheme_edit_text_holo_light</item> <item name="android:textColor">#ffffff</item> </style>
- 在EditText中使用自定义样式:
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" style="/EditTextCustomHolo"/>
希望以上内容能对您有所帮助。
问题的原因是当EditText获得焦点时,设置的颜色不会生效,而是显示焦点颜色。解决方法是使用以下代码来设置EditText的下划线颜色:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
如果要移除颜色,可以使用以下代码:
editText.getBackground().clearColorFilter();
另外,如果在Xamarin for Android中使用自定义渲染器,可以在OnElementChanged方法中使用以下代码:
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
关于使用哪个渲染器,可以根据具体情况选择适合的渲染器。对于搜索栏,可能需要使用SearchBarRenderer来设置颜色。