How to change EditText pointer color (not cursor)

2019-04-04 13:40发布

I'm trying to make the pointer color of EditText to become blue.

Droplet looking thing is the pointer

I'm able to make the underline and the cursor to become blue, but the droplet looking pointer is still grey.

I google a bit, but all the links that appear only talk about how to change the cursor, not the pointer. So if anybody knows how to do this, I need your help.

I only need to support Android 5.0 and above. So if your solution only works on API > 21, that's totally fine.

Thanks!

3条回答
做个烂人
2楼-- · 2019-04-04 14:14

I recognize this is really late, but if all you want to do is change the color of the handle, you just need to add the following to your styles.xml file.

<style name="ColoredHandleTheme">
    <item name="colorControlActivated">@color/colorYouWant</item>
</style>

Or if you want to set it app-wide, you can do the following:

<style name="ColoredHandleThemeForWholeApp">
    <item name="colorAccent">@color/colorYouWant</item>
</style>

And then just set the theme on whatever activity is holding the EditText which you want to affect.

Problem solved!

查看更多
劳资没心,怎么记你
3楼-- · 2019-04-04 14:23

in your styles.xml put like this:

<item name="colorAccent">@color/blue</item>
查看更多
4楼-- · 2019-04-04 14:30

After some hours of checking other solutions I found this one. If you wish to change a cursor handler only in one activity, you should do so. Change your values/styles.xml, for instance:

<style name="AppTheme.Cursor" parent="AppTheme">
    <item name="colorAccent">@color/cursor</item>
</style>

where @color/cursor is added in values/color.xml. After that apply the style to the activity as written here: Apply a theme to an activity in Android?.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(R.style.AppTheme_Cursor);
    ...
查看更多
登录 后发表回答