Есть ли способ стилизовать textInput в интерактивном андроиде? Как изменить подчеркивание цвета при выборе и цвет курсора?
React-native android Styling textInput
Ответ 1
Как и в случае с React Native версии 0.21, по-прежнему нет способа настроить цвет курсора с помощью реквизитов вида. Я успешно разработал цвет курсора, добавив пользовательский стиль в тему моего приложения.
Вы захотите поместить этот код в файл styles.xml
, который находится в папке Android вашего проекта React, в android/app/src/main/res/values/styles.xml
.
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- typical material style colors -->
<item name="colorPrimary">@color/kio_turquoise</item>
<item name="colorPrimaryDark">@color/kio_hot_pink</item>
<!-- sets cursor color -->
<item name="colorControlActivated">@android:color/black</item>
</style>
</resources>
Обратите внимание, что этот стиль является глобальным и будет устанавливать цвет курсора для всех представлений Android TextInput
в вашем приложении React Native.
Ответ 2
Помимо реализации решения @Kio Krofovitch я также сделал файл color.xml в той же папке.. /res/values, в которой я написал что-то вроде:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="orange">#ff5500</color>
<color name="articlecolor">#3399FF</color>
<color name="article_title">#3399FF</color>
<color name="cachecolor">#8ad0e8</color>
</resources>
а затем соответственно отредактировал styles.xml следующим образом:
...
<item name="colorControlActivated">@color/orange</item>
</style>
</resources>
Ответ 3
Для цвета подчеркивания вы можете использовать свойство underlineColorAndroid
: https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js#L290
См. пример: https://github.com/facebook/react-native/blob/master/Examples/UIExplorer/TextInputExample.android.js#L222
Для цвета курсора в данный момент нет такого свойства. Вы всегда можете использовать пользовательскую тему для Android для своего приложения, если хотите изменить это глобально для всех текстовых просмотров в своем приложении (подробнее здесь: http://developer.android.com/guide/topics/ui/themes.html)
Ответ 4
В TextInput есть средство, которое делает это:
- selectionColor (для изменения цвета курсора, а также цвета выделения)
-
underlineColorAndroid (для изменения цвета подчеркивания textInput в Android)
<TextInput underlineColorAndroid="#FF0000" selectionColor="rgba(0,0,0,0.4)" />
Вот документация.