前几天项目中发生了一件灵异事件。我的一个登录页面Edittext居然没有光标闪烁了。
我以为是谁抢了焦点,于是在代码中动态获取焦点,发现仍然没有。由于项目紧张,没有去扒源码,找水友要到了答案。原来Edittext光标默认的颜色跟背景色一样了,导致看不到了。所以产生以下解决方案,有跟踪过源码的兄弟希望在评论区留言。
解决办法:在布局文件中指定androd:textCursorDrawable,如果需要设置成与字体一样的颜色,该属性设置为“@null”即可。如果要自定义颜色,需要自定义一个drawable文件,例如:在drawable下创建custom_cursor.xml,内容如下
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#000000" />
<size android:width="0.5dp"/>
</shape>
然后,设置android:textCursorDrawable="@drawable/custom_cursor",光标颜色就可以改变为指定颜色.
网友评论