Изменить цвет курсора EditText в Android 3.0 - PullRequest
11 голосов
/ 14 декабря 2011

У меня должен быть 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 в качестве цели?

Спасибо за помощь:)

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Я нашел ответ:)

Я установил стиль editText темы:

<item name="android:editTextStyle">@style/myEditText</item>

Тогда я использовал следующую переменную, чтобы установить курсор:

<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 * Ключ 1010 * здесь.

А также отослать это Вертикальная линия с использованием XML-рисования

1 голос
/ 01 марта 2012

Я пытался изменить цвет курсора в моем приложении для API 8. Я обнаружил, что TextView использует свойство textColor в качестве цвета курсора. Вот часть onDraw(), определенная в TextView API 8:

    int color = mCurTextColor;

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

    Layout layout = mLayout;
    int cursorcolor = color;

Затем cursorcolor используется для создания объекта android.graphics.Path, представляющего цвет.

Если вам нужно изменить это поведение, вам предстоит довольно сложная задача, вам придется реализовать собственный TextView.

...