React Native Text Input Android 光标/插入符号和文本光标颜色

Posted

技术标签:

【中文标题】React Native Text Input Android 光标/插入符号和文本光标颜色【英文标题】:React Native Text Input Android Cursor/Caret and Text Cursor Color 【发布时间】:2018-10-28 05:18:13 【问题描述】:

我正在为 React Native Text Input 组件而苦苦挣扎,似乎无法找到一种方法来更改 android 上的光标颜色和文本选择指示器。

官方文档只列出了一个用于选择颜色的道具(文本的高亮背景)。

有没有办法在不全局更改的情况下做到这一点? 如果在全球范围内更改它是正确的方法,那么最好的方法是什么?在styles.xml 中更改它?当我尝试改变它时,React-Native 崩溃了。

【问题讨论】:

【参考方案1】:

我们可以在位于android/app/src/main/res/values/styles.xml 的styles.xml 文件中为android 更改它

但是,在此之前最好停止 NodeJS 服务器,然后进行以下更改

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

        <!-- Customize your theme here. -->
        <item name="colorControlActivated">@android:color/white</item>
    </style>

</resources>

您还可以通过在同一目录中添加colors.xml 文件来添加自定义十六进制颜色代码,代码如下。

<resources>
    <color name="primaryRed">#EB1E27</color>
</resources>

然后在您的styles.xml 文件中,您可以使用@color/primaryRed 引用该颜色。看起来像这样:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

        <!-- Customize your theme here. -->
        <item name="colorControlActivated">@color/primaryRed</item>
    </style>
</resources>

完成后,建议使用Android studio重新构建项目,如果构建成功,则可以运行react-native run-android

【讨论】:

谢谢,效果很好!顺便说一句,无需声明 AppTheme 等。您可以简单地自行添加“colorControlActivated”行。【参考方案2】:

Godwin 的回答帮助了我,但之后我不得不运行它

cd android
./gradlew clean
cd ..
react-native run-android

因为构建会抛出这个错误Failed to capture snapshot of output files for task ':app:processDebugResources' property 'sourceOutputDir' during up-to-date check

Source

【讨论】:

以上是关于React Native Text Input Android 光标/插入符号和文本光标颜色的主要内容,如果未能解决你的问题,请参考以下文章

从 React Native Text Input 向 Redux Toolkit 的 createApi 添加动态数据?

native-base中Input,Textarea等组件在ios平台下不能输入中文

React Native 遇到错误Text strings must be rendered within a <Text> component.

react native Text marginRight paddingRight失效

React-native 传递 Json 值来反应原生 <input

React Native DatePickerIOS