Подтвердить что ты не робот

React-native android Styling textInput

Есть ли способ стилизовать textInput в интерактивном андроиде? Как изменить подчеркивание цвета при выборе и цвет курсора?

4b9b3361

Ответ 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)"
    />
    

Вот документация.