android studio文本框焦点事件改变下划线颜色
时间: 2024-09-28 11:08:58 浏览: 37
Android如何自定义EditText光标与下划线颜色详解
在Android Studio中,当处理EditText控件的焦点变化时,如果你想改变输入框边框的颜色,特别是下划线颜色,你可以通过自定义样式或利用`android:textCursorDrawable`属性来实现。下面是一个简单的示例:
1. **自定义样式**:
首先,创建一个名为`custom_cursor_drawable.xml`的资源文件,通常放在`res/drawable`目录下:
```xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/yourFocusedColor"> <!-- 当获取焦点时 -->
<shape>
<stroke android:width="1dp" android:color="@color/yourFocusBorderColor" /> <!-- 设置边框宽度和颜色 -->
<solid android:color="@android:color/transparent" /> <!-- 内部填充透明 -->
</shape>
</item>
<item android:drawable="@android:color/selection_handle_color"> <!-- 默认无焦点状态 -->
</item>
</selector>
```
然后在主题或样式中引用这个样式:
```xml
<style name="YourTheme" parent="Theme.MaterialComponents.Light">
<item name="android:textCursorDrawable">@drawable/custom_cursor_drawable</item>
</style>
```
2. **直接修改属性**:
如果你不想创建一个自定义选择器,也可以直接在XML布局中设置:
```xml
<EditText
android:id="@+id/your_edit_text"
android:focusableInTouchMode="true"
android:textCursorDrawable="@drawable/custom_cursor_drawable"
... />
```
这里`custom_cursor_drawable`替换为你上述创建的资源ID。
注意,`focusableInTouchMode="true"`确保点击其他区域仍然可以获取焦点。
阅读全文