EditText设置下划线提示字颜色输入字体颜色及问题

Posted 怪兽N

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EditText设置下划线提示字颜色输入字体颜色及问题相关的知识,希望对你有一定的参考价值。

显示正确设置

想要设置EditText的下划线、提示字颜色、输入字体颜色,可以通过设置xml属性android:theme="@style/MyEditTextStyle",例如

    <EditText
        android:id="@+id/password"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="24dp"
        android:hint="@string/prompt_password"
        android:imeOptions="actionDone"
        android:inputType="textPassword"
        android:selectAllOnFocus="true"
        android:theme="@style/MyEditTextStyle"
        android:textColor="@color/ic_white"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/username" />

res/styles.xml

    <style name="MyEditTextStyle">
        <!--文本的颜色,textColor和textSize不要放到style中-->
        <item name="android:textColorHint">@color/warm_gray</item>
        <item name="colorControlNormal">@color/warm_gray</item>
        <item name="colorControlActivated">@color/colorAccent</item>
    </style>

可以得到想要的结果

显示错误设置

测试时,把textColor和textSize要放到style中,

<EditText
    android:id="@+id/password"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="24dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="24dp"
    android:hint="@string/prompt_password"
    android:imeOptions="actionDone"
    android:inputType="textPassword"
    android:selectAllOnFocus="true"
    android:theme="@style/MyEditTextStyle"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/username" />

<item name="android:textColor">@color/ic_white</item> <item name="android:textSize">18sp</item>

这两个属性一并放到style/MyEditTextStyle

<style name="MyEditTextStyle">
    <!--文本的颜色-->
    <item name="android:textColor">@color/ic_white</item>
    <item name="android:textSize">18sp</item>
    <item name="android:textColorHint">@color/warm_gray</item>
    <item name="colorControlNormal">@color/warm_gray</item>
    <item name="colorControlActivated">@color/colorAccent</item>
</style>

结果显示,error的字体设置也变化了,输入的字体也没显示为白色, 而是黑色,错误提示字体也很大

总结

设置EditText的下划线、提示字颜色、输入字体颜色,可以通过设置xml属性android:theme="@style/MyEditTextStyle"

但是不要把textColor和textSize要放到style中, 会使输入显示的字体颜色不正确,error的大小也不正确。

附颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#0A1026</color>
    <color name="colorPrimaryDark">#0A1026</color>
    <color name="colorAccent">#F57F17</color>
    <color name="color_purl">#7e53c5</color>
    <color name="white">#EAE9E9</color>
    <color name="ic_white">#FFF3E0</color>
    <color name="tmn_white">#F6F5F5</color>
    <color name="line_gray">#E6E6E6</color>
    <color name="warm_gray">#7C7B7B</color>
    <color name="peal_white">#FEFDFD</color>
    <color name="warm_red">#E5514E</color>
    <color name="warm_blue">#42A5F5</color>
    <color name="light_blue">#EC6BBAFA</color>
</resources>

以上是关于EditText设置下划线提示字颜色输入字体颜色及问题的主要内容,如果未能解决你的问题,请参考以下文章

如何把word文档中相同的字设置相同的颜色并加下划

教你如何修改状态栏提示的字体颜色教程(来短信提示字颜色)

java中怎么设置label的字体大小及颜色显示

linux,shell脚本,字体颜色及设置

富文本设置文字颜色和字体

EditText下划线禁用颜色[重复]