You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置XML隐藏属性仍显示,如何隐藏带密码图标的TextInputEditText?

解决TextInputEditText密码可见图标无法隐藏的问题

首先要明确:密码可见切换的眼睛图标是TextInputLayout的控件特性,不是TextInputEditText本身的,所以直接在EditText上设置属性无效,得操作它的父布局TextInputLayout。

下面是具体解决方法:

1. XML布局中直接隐藏

确保你的布局是TextInputLayout包裹TextInputEditText的结构,然后给TextInputLayout添加属性:

<com.google.android.material.textfield.TextInputLayout
    ...
    app:endIconMode="none">

    <com.google.android.material.textfield.TextInputEditText
        ...
        android:inputType="textPassword"/>

</com.google.android.material.textfield.TextInputLayout>

app:endIconMode="none"会直接隐藏TextInputLayout右侧的所有内置图标,包括密码切换的眼睛图标。

2. 代码中动态控制

如果需要在运行时根据逻辑隐藏/显示图标,可调用TextInputLayout的方法:

// 隐藏图标
textInputLayout.setEndIconMode(TextInputLayout.END_ICON_NONE);
// 恢复密码切换图标(如果需要)
// textInputLayout.setEndIconMode(TextInputLayout.END_ICON_PASSWORD_TOGGLE);

3. 排查常见坑

  • 不要给TextInputEditText设置passwordToggleEnabled这类属性,这个属性属于TextInputLayout,设置在EditText上完全无效。
  • 检查代码中是否有其他逻辑覆盖了XML的设置:比如在Activity/Fragment初始化时,有没有调用setEndIconMode或者相关方法,导致XML的配置被覆盖。
  • Android 6兼容性:确保你引入的Material Components库版本适配Android 6,建议使用com.google.android.material:material:1.4.0这类稳定版本,避免高版本库在旧系统上的兼容性问题。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:05:23