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

求助:Material 1.4.0下EditText的endIconMode属性失效,图标不显示

解决Material组件endIconMode不显示的问题

问题根源

你用的是原生EditText,但app:endIconMode是Material Design组件库中TextInputLayout的专属属性,原生EditText不支持这个配置,所以哪怕换版本、手动加图标也没用。

修复步骤

  1. 替换控件结构:必须用TextInputLayout包裹TextInputEditText(Material版的EditText),把endIconMode属性移到TextInputLayout上。
  2. 调整背景设置:移除EditText的android:background,把自定义背景配置到TextInputLayout上,避免和Material组件的内置样式冲突。

修改后的完整布局代码

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/inputLayoutLogin"
    android:layout_width="332dp"
    android:layout_height="wrap_content"
    android:hint="Введите логин или почту"
    app:endIconMode="clear_text"
    app:boxBackgroundMode="none"
    app:boxBackgroundDrawable="@drawable/custom_input"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.497"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.411">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/editTextlgn"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:ems="10"
        android:inputType="text"
        android:paddingStart="12dp"
        android:paddingEnd="12dp"
        android:textColor="@color/white"
        android:textColorHighlight="#FFFFFF"
        android:textColorHint="#FFFFFF"
        android:textColorLink="#FFFFFF"
        android:textCursorDrawable="@drawable/custom_cursor"
        android:textSize="20sp" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/inputLayoutPassword"
    android:layout_width="332dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="12dp"
    android:hint="Введите пароль"
    app:endIconMode="password_toggle"
    app:boxBackgroundMode="none"
    app:boxBackgroundDrawable="@drawable/custom_input"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.493"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/inputLayoutLogin">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/editTextPassword"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:ems="10"
        android:inputType="textPassword"
        android:paddingStart="12dp"
        android:paddingEnd="12dp"
        android:textColor="@color/white"
        android:textColorHint="#FFFFFF"
        android:textCursorDrawable="@drawable/custom_cursor"
        android:textSize="20sp" />
</com.google.android.material.textfield.TextInputLayout>

额外注意事项

  • 如果需要修改切换图标的颜色,可添加app:endIconTint="@color/your_color"到TextInputLayout。
  • 1.4.0版本的Material库完全支持该配置,无需盲目升级。
  • 确保App主题继承自Material主题(比如Theme.MaterialComponents.DayNight.DarkActionBar),否则Material组件样式可能失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:36:18