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

博客围绕EditText设置展开,介绍了显示正确设置方法,即通过设置xml属性可设置下划线、提示字颜色、输入字体颜色;也提及显示错误设置情况,如将textColor和textSize放于style中,会使输入字体颜色和error大小显示异常。总结强调正确设置方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

显示正确设置

想要设置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的光标颜色,你可以使用以下方法: 1. 全局设置:在AndroidManifest.xml文件中找到`android:theme="@style/Theme"`,然后点击查看Theme的属性。如果有`<item name="colorAccent">@color/colorAccent</item>`,那么`@color/colorAccent`就是全局设置光标的颜色。你可以将其修改为你想要的颜色即可。\[2\] 2. 局部设置:你可以使用以下代码来自定义光标颜色: ```java editText.setHighlightColor(Color.RED); // 设置光标颜色 ``` 你可以将`Color.RED`替换为你想要的颜色。\[2\] 3. 如果你想要禁止编辑状态下的光标显示,你可以使用以下代码: ```java editText.setFocusable(false); editText.setFocusableInTouchMode(false); ``` 如果你想要启用编辑状态下的光标显示,你可以使用以下代码: ```java editText.setFocusableInTouchMode(true); editText.setFocusable(true); editText.requestFocus(); ``` 这样就可以根据需要设置EditText的光标颜色和编辑状态了。\[3\] #### 引用[.reference_title] - *1* *3* [修改EditText的光标颜色](https://blog.csdn.net/asd199205/article/details/72841053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [设置EditText光标颜色](https://blog.csdn.net/m0_49241867/article/details/123346470)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值