通过styles.xml更改EditText光标颜色

时间:2016-09-26 09:56:03

标签: android android-edittext textview

现在,我可以通过反射和使用属性styles.xml更改光标drawable。我查看了 final Resources.Theme theme = context.getTheme(); /* * Look the appearance up without checking first if it exists because * almost every TextView has one and it greatly simplifies the logic * to be able to parse the appearance first and then let specific tags * for this View override it. */ TypedArray a = theme.obtainStyledAttributes(attrs, com.android.internal.R.styleable.TextViewAppearance, defStyleAttr, defStyleRes); 代码,它实际上从Resources.Theme中读取了drawables。我想知道它是否可能以及如何通过在skip_on_cran中创建自定义主题来改变它?

test_that

5 个答案:

答案 0 :(得分:2)

Edittext有一个名为 android:textCursorDrawable 的属性, 将此属性设置为 @null 现在你可以设置任何想要的颜色 android:textColor , 这将导致光标颜色改变。

答案 1 :(得分:2)

在您的布局中执行以下操作:

<EditText  
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textCursorDrawable="@drawable/cursor_color"/>

然后创建drawalble cursor_color.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <size android:width="2dp" />
    <solid android:color="#FFFFFF"/> // Set your required color code for your cursor color
</shape>

希望这会对你有所帮助

答案 2 :(得分:1)

在EditText属性中,有一个属性:android:textCursorDrawable

现在将它设置为@null,如下所示:

android:textCursorDrawable="@null"

现在,您的EditText光标与EditText TextColor相同。

答案 3 :(得分:0)

将此添加到您的drawable文件夹中。:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <size android:width="1dp" />
    <solid android:color="#000000"/>
</shape>

并在EditText标记中定义此标记:

 android:textCursorDrawable="@drawable/black_cursor"

答案 4 :(得分:0)

在项目中随时更改颜色 - res-&gt; values-&gt; colors.xml,命名为“colorAccent”。这适用于所有编辑文本作为默认颜色,并支持所有API版本。