如何更改 TextInputLayout android 中 set EndIconDrawable 的可见性(可见、不可见和消失)?

How to change visiblity (visible, invisible or gone ) of setEndIconDrawable in TextInputLayout android?

我正在尝试使 endIconDrawable 不可见或可见性消失,它是上图中仅用于 FirstName 字段的编辑图标,并且想保持其余字段的可见编辑图标但无法做到?我该怎么做?

      <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/tilFirstName"
                android:layout_width="match_parent"
                android:layout_height="@dimen/_64dp"
                app:endIconDrawable="@drawable/icon_edit"
                app:endIconMode="custom">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/etFirstName"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:focusableInTouchMode="false"
                    android:hint="@string/label_fname"
                    android:inputType="textCapWords" />
            </com.google.android.material.textfield.TextInputLayout>

我想得到如下图所示的内容:

添加这个android:visibility="gone"

如果你想在布局中(静态方式)做到这一点,就不要添加 app:endIconDrawable/app:endIconMode 属性:

  <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/tilFirstName"
            android:layout_width="match_parent"
            android:layout_height="@dimen/_64dp">

以编程方式删除 endIconDrawable 您可以使用:

textInputLayout.setEndIconMode(TextInputLayout.END_ICON_NONE);

要添加 endIconDrawable,您可以使用:

textInputLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
textInputLayout.setEndIconDrawable(R.drawable.xxxx);

我尝试了@Gabriele Mariotti 的回答。这很好,但它有一个问题。我使用了使 endicon 在文本观察器中可见或不可见的代码,但它没有按预期工作。然后我将 isEndIconVisible 属性用于 textInputLayout 并确定它是对还是错。它按预期正常工作。

2022 KOTLIN

最佳解决方案:

textInputLayout.isEndIconVisible = false