如何在 Android NativeScript 应用程序上更改 TextView 底部强调色

How to change TextView bottom accent colour on Android NativeScript app

我目前正在尝试弄清楚如何将文本输入框底部边框的颜色从默认的蓝色更改为其他颜色。我试过使用 border-color、color 和 background-color 属性,但 none 似乎对输入有影响。这是我用于输入 <TextField text="{{ username }}" cssClass="username" android:row="1"/> 的 XML 代码。

对于 android,如果您想使用 TextInputLayout(精美的浮动标签、错误消息等...),我有一个插件:https://www.npmjs.com/package/nativescript-textinputlayout

即使您不想使用该插件,或者由于我还没有获得 iOS 支持而无法使用 :p,同样的样式机制也会有所帮助。在插件的演示应用程序中,我为 android 使用 App_Resource,它为我认为不能在 NativeScript 中定义的事物定义了一些样式规则:

<style name="DemoAppTheme" parent="AppTheme">
    <item name="colorControlNormal">@color/darkBlue</item>
    <item name="colorControlActivated">@color/medBlue</item>
    <item name="colorControlHighlight">@color/lightBlue</item>
    <item name="android:textColorPrimary">@color/darkBlue</item>
    <item name="android:textColorHint">@color/medBlue</item>
</style>

特别是前两项将为您提供帮助,因为它涵盖了正常和激活状态下控件的标准颜色。目前,我不是 100% 了解高亮状态和激活状态之间的区别。看看我的插件的演示应用程序如何将它们连接起来,它应该可以帮助您。你想看看 app/App_Resources/Android/values/(appColors | appStyles).xmlapp/App_Resources/Android/AndroidManifest.xml

借用@Bradley-Gore 的回答。这是 Android documentation which highlights what colors need to be set Here is another good link from the Android documentation 与 styles/themes

的兼容性

您正在寻找的重要作品是:

  <!--   theme UI controls like checkboxes and text fields -->
  <item name="android:colorAccent">@color/accent</item>

对于 NativeScript 1.6+ 版,您需要在 App_Resources/Android/ 中创建文件,在 NativeScript 1.6 之前,您必须在 中进行这些更改platforms/android/ 更改的原因是在您需要删除平台并将其重新添加以修复任何构建 cache/gradle 问题等时保留这些类型的更改。

因此,要简单地设置主色、主色和强调色,请创建位于 [=35] 中的 valuesvalues-v21 文件夹=]App_Resources/Android

App_Resources/Android/值/colors.xml

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
   <color name="ns_primary">#3489db</color>
   <color name="ns_primaryDark">#336699</color>
   <color name="ns_accent">#ff4081</color>
 </resources>

App_Resources/Android/values-v21/colors.xml

 <?xml version="1.0" encoding="utf-8"?>
  <resources>
    <color name="ns_accent">#ff4081</color>
  </resources>

如果您实际上只是创建一个 NativeScript 项目并构建 android 应用程序,请导航至 platforms/android 您会看到 CLI 生成了这些文件,这就是 NativeScript 默认设置应用程序样式的方式,这也是它在 primary、primaryDark、accent 值之前使用前缀 ns_ 的原因。

在您开始学习时可能对您有所帮助的其他内容 Android 和 NativeScript 是附加的 .gif。这是来自 Android 文档,大多数样式可以通过编程方式完成,或者通过 @bradley-gore 提到的 .xml 文件设置样式以及我在此处列出的颜色,但最好将项目分开 :) 在 .gif 中,我只突出显示 android.widget.TextView class 并向下滚动以找到可以设置的 XML 属性,如果您正在通过 XML 构建本地 Android UI。这些是您可以通过样式设置的内容,如果有匹配的方法,您将在 xml 属性旁边看到代码方法。希望这能解释一切,并为那些进入 NativeScript 的人提供良好的学习体验。我可能会写博客 :) 好问题。