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

Android计算器APP:EditText隐藏下划线并显示白色光标实现方法

解决EditText隐藏下划线同时保留白色光标问题

我之前开发计算器APP时也碰到过完全一样的需求,试了好几种方法,最后这两个方案是最靠谱的:

方案一:纯XML布局配置(推荐,适配性强)

不用写任何代码,通过XML就能搞定,适配绝大多数Android版本:

  1. 先在res/drawable目录下创建一个自定义光标样式文件white_cursor.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- 设置光标为纯白色 -->
    <solid android:color="#FFFFFF"/>
    <!-- 光标宽度,和安卓默认计算器保持一致 -->
    <size android:width="2dp"/>
</shape>
  1. 然后在布局文件的EditText标签中添加这些属性:
<EditText
    android:id="@+id/calculator_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    <!-- 隐藏默认下划线 -->
    android:background="@null"
    <!-- 引用自定义的白色光标 -->
    android:textCursorDrawable="@drawable/white_cursor"
    <!-- 输入文字设为白色,和光标风格统一 -->
    android:textColor="#FFFFFF"
    android:textSize="36sp"
    <!-- 输入内容右对齐,和默认计算器布局一致 -->
    android:gravity="end"
    <!-- 适配计算器的输入类型 -->
    android:inputType="numberDecimal|numberSigned"/>

方案二:代码动态设置(兼容特殊场景)

如果需要适配老版本系统,或者要动态切换光标样式,可以用代码实现:

Kotlin版本

val calculatorInput = findViewById<EditText>(R.id.calculator_input)
// 隐藏下划线
calculatorInput.setBackgroundResource(android.R.color.transparent)
// 设置白色光标
try {
    val cursorField = TextView::class.java.getDeclaredField("mCursorDrawableRes")
    cursorField.isAccessible = true
    cursorField.set(calculatorInput, R.drawable.white_cursor)
} catch (e: Exception) {
    // 捕获异常避免崩溃
    e.printStackTrace()
}

Java版本

EditText calculatorInput = findViewById(R.id.calculator_input);
calculatorInput.setBackgroundResource(android.R.color.transparent);
try {
    Field cursorField = TextView.class.getDeclaredField("mCursorDrawableRes");
    cursorField.setAccessible(true);
    cursorField.set(calculatorInput, R.drawable.white_cursor);
} catch (Exception e) {
    e.printStackTrace();
}

小提示:如果用android:background="@null"觉得布局有边距问题,可以换成android:background="@android:color/transparent",效果完全一致,不会影响光标显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:32:34