Изменение цвета курсора EditText в Android 3.0
Мне нужно иметь 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 в качестве цели?
Спасибо за помощь:)
Ответы
Ответ 1
Я нашел ответ:)
Я установил стиль 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-графика
Ответ 2
Я пытался изменить цвет курсора в своем приложении, которое предназначалось для 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
.