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

如何避免Android系统对Button按钮文本执行拼写检查?

该异常是Android Button(继承自TextView)默认开启拼写检查导致的,低版本系统对拼写检查的默认逻辑管控更松,所以出现概率更高,拼写检查会给识别到的疑似错误文本添加下划线标记,和你遇到的异常效果一致。android:spellCheck 属性最低支持Android 4.0(API level 14),已经覆盖当前市场所有活跃设备,无兼容性问题。

解决方案

全局样式统一配置(推荐)

你全局使用了该按钮样式,直接修改父样式一次即可全部生效,在Widget.App.Button.TextButton样式中添加关闭拼写检查的属性:

<style name="Widget.App.Button.TextButton" parent="Widget.MaterialComponents.Button.TextButton">
    <item name="android:capitalize">none</item>
    <item name="iconPadding">@dimen/distance_100</item>
    <item name="android:textAppearance">@style/TextAppearance.App.14</item>
    <item name="strokeWidth">0dp</item>
    <!-- 新增以下两行关闭拼写检查与自动纠错 -->
    <item name="android:spellCheck">false</item>
    <item name="android:autoText">false</item>
</style>

单个控件配置

如果仅需要调整个别按钮,直接在对应Button的XML标签中添加属性即可:

<Button
    android:id="@+id/previousButton"
    style="@style/Widget.App.Button.TextButton.Link"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/parental_leave_summary_back"
    app:icon="@drawable/ic_arrow_left_small"
    app:iconGravity="textStart"
    <!-- 新增属性 -->
    android:spellCheck="false"
    android:autoText="false"
/>

代码动态配置

如果需要在运行时动态控制,可通过代码设置:

Kotlin 示例

previousButton.spellCheck = false
previousButton.autoText = false

Java 示例

previousButton.setSpellCheckEnabled(false);
previousButton.setAutoTextEnabled(false);

内容的提问来源于stack exchange,提问作者m.reiter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:48:03