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

点击复选框禁用EditText后,如何将其文本恢复为灰色状态?

解决EditText禁用后仍呈粉色(焦点残留)的问题

嘿,我之前也踩过这个坑!你遇到的粉色其实是EditText的焦点高亮状态——虽然你禁用了输入框,但焦点还没从它身上移走,所以系统依然会显示活跃输入时的粉色样式。

你现在的代码只做了禁用和取消可聚焦,但漏掉了最关键的一步:主动清除焦点!给你调整后的代码,亲测有效:

if (mAnonymousCheckBox.isChecked()) { 
    // 核心:先移除输入框的焦点,立刻消除粉色高亮
    usernameEditText.clearFocus();
    // 可选:确保光标完全隐藏(禁用后理论上会消失,但加上更稳妥)
    usernameEditText.setCursorVisible(false);
    
    // 原来的禁用逻辑保留
    usernameEditText.setFocusable(false);
    usernameEditText.setEnabled(false);
    
    // 清空账号密码
    setFTPUsername("");
    setFTPPassword("");
} else {
    // 别忘了取消勾选时恢复输入框的所有状态哦
    usernameEditText.setFocusable(true);
    usernameEditText.setFocusableInTouchMode(true);
    usernameEditText.setEnabled(true);
    usernameEditText.setCursorVisible(true);
}

补充说明:

  • clearFocus()是解决问题的核心,它会让系统把焦点从EditText上移除,粉色高亮自然就消失了
  • 如果你想让禁用状态的视觉效果更明显,还可以额外设置usernameEditText.setAlpha(0.6f)让输入框变灰,或者用setBackgroundColor()调整背景色,不过这属于锦上添花的操作了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:11:26