当前位置: 首页 > 知识库问答 >
问题:

使用appcompat v7更改EditText底线颜色

皇甫飞光
2023-03-14

我正在使用AppCompatV7来获得Android5和更低版本的外观一致性。它工作得相当好。但是,我不知道如何更改编辑文本的底线颜色和重音颜色。有可能吗?

我试图定义一个自定义的android:edittextstyle(参见下面),但我只成功地更改了整个背景颜色或文本颜色,而没有更改底线或强调色。是否有要使用的特定属性值?我必须通过android:background属性使用自定义的可绘制图像吗?难道不能指定一种六色颜色吗?

 <style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
     <item name="android:editTextStyle">@style/Widget.App.EditText</item>
 </style>

 <style name="Widget.App.EditText" parent="Widget.AppCompat.EditText">
     ???
 </style>

根据android API 21的消息来源,带有材质设计的EditTexts似乎使用了ColorControlActivatedColorControlNormal。因此,我尝试在前面的样式定义中重写这些属性,但没有效果。可能appcompat没有使用它。不幸的是,我找不到与材料设计的appcompat的上一个版本的来源。

共有2个答案

夏侯华彩
2023-03-14

我觉得这需要一个答案,以防有人只想更改一个编辑文本。我是这样做的:

editText.getBackground().mutate().setColorFilter(ContextCompat.getColor(context, R.color.your_color), PorterDuff.Mode.SRC_ATOP);
欧镜
2023-03-14

终于,我找到了解决办法。它只是覆盖应用程序主题定义中的ColorControlActivatedColorControlHighlightColorControlNormal值,而不是edittext样式。然后,想想用这个主题为任何你想要的activity。下面是一个例子:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">#c5c5c5</item>
    <item name="colorControlActivated">@color/accent</item>
    <item name="colorControlHighlight">@color/accent</item>
</style>
 类似资料:
  • 问题内容: 我正在使用appcompat v7在Android 5及更低版本上获得一致的外观。效果不错。但是我不知道如何更改EditTexts的底线颜色和强调颜色。可能吗? 我试图定义一个自定义项(请参见下文),但是我仅成功更改了完整的背景色或文本色,但没有更改底线或强调色。是否有要使用的特定属性值?我必须通过android:background属性使用自定义可绘制图像吗?不能指定六种颜色吗? 根

  • 我正在使用设计库中新的。我能够让它显示和改变浮动标签的颜色。不幸的是,实际的提示现在总是白色的。 我尝试过用XML、样式和编程方式更改hintColor,还尝试过使用android。支持v7。小装置。AppCompatiEditText但是提示始终显示白色。 这是我的和 下面是我用于的样式(我尝试将属性设置为黑色,但没有为我做任何事情):

  • 我在中有一个,底线颜色不是我想要的,我不知道如何更改它。 这是我到目前为止所拥有的。 出于某种不起作用的奇怪原因,应该是它。

  • 我尝试了这个解决方案,比如在主主题中添加属性,但无法改变TextInputLayout中底线的颜色,默认情况下它采用状态栏的颜色(它可能被称为primarydark),也不想在TextInputLayout下面出现错误文本时改变底线的颜色,意思是当错误发生时改变红色,当它得到焦点时应该是那个颜色

  • 本文向大家介绍Android更改EditText下划线颜色样式的方法,包括了Android更改EditText下划线颜色样式的方法的使用技巧和注意事项,需要的朋友参考一下 前言 相信大家都知道,当使用AppCompatEditText(Edit Text)时,默认的下划线是跟随系统的#FF4081的颜色值的,通过改变这个值可以改变所有的颜色样式 有时候你想单独定义某一个界面的颜色样式,则可以这样做

  • 然而,当我运行该应用程序时,我没有看到任何变化。更改背景本身: 将整个更改为-不是我想要的! 如何以编程方式更改、或的下划线颜色?我使用的是支持库的25.0.1版本。