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

如何实现Material 3中TextInputLayout的另一种错误状态?

实现Material 3 TextInputLayout的旧版错误样式

要在Material 3中复刻原design-support-library的错误提示样式(错误文本左对齐在输入框下方、输入框底部边框变为错误色),可以通过自定义样式实现,步骤如下:

1. 定义自定义样式

在res/values/styles.xml中添加以下样式配置:

<!-- 自定义TextInputLayout样式 -->
<style name="LegacyErrorTextInputLayout" parent="Widget.Material3.TextInputLayout.FilledBox">
    <!-- 设置错误文本左对齐 -->
    <item name="errorGravity">start</item>
    <!-- 自定义错误文本样式,匹配旧版视觉 -->
    <item name="errorTextAppearance">@style/LegacyErrorTextStyle</item>
    <!-- 设置输入框错误状态下的边框/下划线颜色 -->
    <item name="boxStrokeErrorColor">@color/material_error</item>
    <!-- 移除右侧默认的错误图标(可选,旧版无此图标) -->
    <item name="errorIconDrawable">@null</item>
</style>

<!-- 自定义错误文本的字体样式 -->
<style name="LegacyErrorTextStyle" parent="TextAppearance.Material3.Error">
    <item name="android:textSize">12sp</item>
    <item name="android:textColor">@color/material_error</item>
</style>

如果你的输入框是轮廓样式(OutlinedBox),只需将父样式改为Widget.Material3.TextInputLayout.OutlinedBox即可。

2. 布局中应用样式

在XML布局文件里给TextInputLayout设置上述自定义样式:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/input_layout"
    style="@style/LegacyErrorTextInputLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入内容">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

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

3. 代码中设置错误信息

保持原有调用逻辑,通过setError()方法触发错误状态:

// Kotlin示例
input_layout.error = "请输入有效的内容"
// Java示例
textInputLayout.setError("请输入有效的内容");

关键属性说明

  • errorGravity: 控制错误文本的对齐方向,start实现左对齐,与旧版design库效果一致。
  • errorTextAppearance: 自定义错误文本的大小、颜色,还原旧版的视觉风格。
  • boxStrokeErrorColor: 指定输入框边框(或下划线)的错误状态颜色,直接使用Material 3内置的material_error即可匹配旧版红色。
  • errorIconDrawable="@null": 移除右侧默认的感叹号图标,完全复刻旧版无图标的错误样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:52:18