11

我的应用程序中必须有一个白色背景的 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 上发现了这个问题: 设置 EditText 光标颜色

它在那里完成的方式是android:textCursorDrawable关键。但是这个键似乎只适用于 3.2 目标。但是我们的客户想要一个 3.0 目标,我找不到任何其他解决方案......

有什么办法可以改变以 3.0 为目标的闪烁光标的颜色吗?

感谢您的帮助:)

4

2 回答 2

2

我找到了答案:)

我已将主题的 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是这里的关键。

并且还使用 XML drawable 引用这条 垂直线

于 2012-03-01T15:18:58.480 回答
1

我试图更改针对 API 8 的应用程序中的光标颜色。我发现它TextView使用textColor属性作为光标颜色。这是API 8中onDraw()定义的一部分:TextView

    int color = mCurTextColor;

    if (mLayout == null) {
        assumeLayout();
    }

    Layout layout = mLayout;
    int cursorcolor = color;

然后cursorcolor使用 来构造一个表示颜色的 android.graphics.Path 对象。

如果您需要更改此行为,您将完成一项艰巨的任务,您必须实现自己的TextView.

于 2012-03-01T14:40:19.103 回答