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

EditText输入内容不显示问题:Google Play安装后文本不可见

问题描述

我在Google Play发布了一款应用,用户从该商店安装后,在EditText输入内容时无法看到输入的文本(推测字体颜色为白色),但点击保存后,输入的值可正常保存至数据库并在列表中显示。在Android Studio模拟器中运行应用时,EditText的文本为黑色,输入内容可见。

相关代码片段

fragment.xml 中EditText的布局代码

<FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dp"
            android:layout_marginEnd="10dp"
            android:paddingVertical="5dp">


            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:text="@string/wheeldiameter"
                android:textColor="@color/black" />


            <EditText
                android:id="@+id/editTextWheelDiameter"
                android:layout_width="110dp"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:background="@drawable/box_background_drawable"
                android:drawableStart="@drawable/ic_baseline_edit_24"
                android:drawablePadding="8dp"
                android:ems="10"
                android:hint="0"
                android:inputType="numberDecimal"
                android:padding="14dp"
                android:textColor="@color/black" />
        </FrameLayout>

colors.xml 文件内容

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="purple_200">#BB86FC</color>
    <color name="purple_500">#6200EE</color>
    <color name="purple_700">#3700B3</color>
    <color name="teal_200">#03DAC5</color>
    <color name="teal_700">#018786</color>
    <color name="black">#000000</color>
    <color name="white">#FFFFFF</color>
    <color name="backgroundColor">#dddddd</color>
    <color name="light_blue">#0FA2EB</color>
    <color name="green">#3ED004</color>
</resources>

提问

请问该问题是否与drawableStart或background有关?


解答

这个问题和drawableStart无关,大概率是自定义background或系统主题适配导致的,具体分析和解决思路如下:

  • 排除drawableStart:该属性仅用于在EditText左侧添加图标,不会影响输入文本的颜色显示,可直接排除其影响。
  • 重点排查方向:
    1. 自定义background的适配问题:检查box_background_drawable的背景色,如果该drawable背景为白色,而用户设备开启了深色模式,系统可能强制将EditText的文本颜色切换为白色,导致白字白背景无法识别。即使xml中设置了android:textColor="@color/black",系统主题的优先级可能覆盖该设置。
    2. 模拟器与真机的主题差异:模拟器通常默认使用浅色主题,而用户设备可能开启了深色模式,你的应用未做深色主题适配,导致文本颜色被系统自动切换。
  • 解决方案:
    • 锁定EditText的文本相关颜色:在EditText标签中添加android:textColorHint="@color/black"(确保提示文字可见),以及android:textCursorDrawable="@null"(让光标颜色与文本颜色一致),或者通过自定义Style固定EditText的文本颜色,避免系统主题干扰。
    • 检查box_background_drawable:确保其背景色与文本颜色有足够对比度,比如浅色背景搭配黑色文本,深色背景搭配白色文本。
    • 适配深色主题:如果应用支持深色模式,在res/values-night/colors.xml中定义对应的文本颜色,确保深色主题下文本可见。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:05:31