Android TextInputLayout 和 TextInputEditText 光标颜色问题

8

enter image description hereProblem

我有一个问题,在xxx之后光标变成紫色,我想知道那个下拉光标的名称,我想将其颜色更改为与我的主题相匹配。我阅读了许多论坛和文档,唯一找到的是cursorDrawable,但那不是它。请帮我找到正确的名称或解决方案。 谢谢 附注:那个东西的紫色不在我的样式或颜色中。

请发布您的代码。 - Gabriele Mariotti
1个回答

28

颜色基于colorPrimary

如果您想覆盖 colorPrimary 的颜色,可以使用:

  <com.google.android.material.textfield.TextInputLayout                
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:theme="@style/ThemeOverlay.AppTheme.TextInputEditText.Outlined"
    ....>

跟随:

<style name="ThemeOverlay.AppTheme.TextInputEditText.Outlined" parent="">
    <item name="colorPrimary">@color/...</item>
</style>

在这里输入图片描述

如果你只想重写光标,可以使用:

<style name="ThemeOverlay.AppTheme.TextInputEditText.Outlined" parent="">
    <item name="colorControlActivated">@color/...</item>
</style>

在此输入图片描述

在此输入图片描述


谢谢,但是我指的是光标下面的那个下拉菜单,这就是我需要改变的。我添加了另一张图片,清楚地展示了我的意思。 - Gaston Fassi Lavalle
@GastonFassiLavalle 拖动的元素与光标颜色相同。 - Gabriele Mariotti
谢谢,现在我需要找到这个颜色在哪里 <color name="colorPrimary">#000</color> <color name="colorPrimaryDark">#000</color> <color name="colorAccent">#000</color> ,但仍然是紫罗兰色而不是黑色。 我将尝试在样式中进行覆盖,但我想知道那个紫罗兰色来自哪里。 - Gaston Fassi Lavalle
1
@GastonFassiLavalle 紫色(#6200EE)是由Material Theme定义的默认颜色。在你的styles.xml文件中,只需在应用程序主题中添加colorPrimary属性即可。类似于:<style name="AppTheme" parent="Theme.MaterialComponents.DayNight"> <item name="colorPrimary">@color/colorPrimary</item> - Gabriele Mariotti
1
谢谢,那个方法可行,我本来还在寻找其他方法,但是覆盖它更好。非常感谢。 - Gaston Fassi Lavalle
@GabrieleMariotti 有没有使用Material3的想法如何实现它? - Leonardo Sibela

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接