我的应用程序中必须有一个带有白色背景的EditText。我在我的theme.xml文件
中这样做了<style name="myEditText" parent="@android:style/Widget.EditText">
<item name="android:background">#ffffffff</item>
<item name="android:textColor">#ff000000</item>
</style>
现在的问题是光标仍然是白色,因此不可见。 我做了一些谷歌搜索,并在StackOverflow上找到了这个问题: Set EditText cursor color
它的完成方式是android:textCursorDrawable
键。但是这个密钥确实只能用于3.2目标。但我们的客户想要3.0目标,我找不到任何其他解决方案......
有什么办法可以用3.0作为目标来改变闪烁光标的颜色吗?
感谢您的帮助:)
答案 0 :(得分:2)
我找到了答案:)
我已将Theme的editText样式设置为:
<item name="android:editTextStyle">@style/myEditText</item>
然后我使用以下drawable来设置光标:
<style name="myEditText" parent="@android:style/Widget.Holo.Light.EditText">
<item name="android:background">@android:drawable/editbox_background_normal</item>
<item name="android:textCursorDrawable">@android:drawable/my_cursor_drawable</item>
<item name="android:height">40sp</item> </style>
android:textCursorDrawable 是这里的关键。
并且也参考这个 Vertical line using XML drawable
答案 1 :(得分:1)
我试图更改我的应用中针对API 8的光标颜色。我发现TextView
使用textColor
属性作为光标颜色。以下是onDraw()
API 8中定义的TextView
的一部分:
int color = mCurTextColor;
if (mLayout == null) {
assumeLayout();
}
Layout layout = mLayout;
int cursorcolor = color;
然后cursorcolor
用于构造表示颜色的android.graphics.Path对象。
如果您需要更改此行为,那么您需要完成自己的TextView
。