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

enter image description here

I am trying to make invisible or visibility gone of endIconDrawable which is the edit icon in the picture above for FirstName field only and want to keep visibile edit icon rest of the fields but unable to do? How can i do this?

      <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>

I wanted to get the following as shown in the below image:

enter image description here



Solution 1:[1]

If you want to do it in the layout (static way) just don't add the app:endIconDrawable/app:endIconMode attributes:

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

Programmatically to remove the endIconDrawable you can use:

textInputLayout.setEndIconMode(TextInputLayout.END_ICON_NONE);

To add the endIconDrawable you can use:

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

Solution 2:[2]

I tried @Gabriele Mariotti 's answer. It's good but it has a problem. I used the code for making endicon visible or invisible in text watcher and it didn't work as desired. Then I used isEndIconVisible attribute for textInputLayout and maje it true or false. It works correctly as desired.

Solution 3:[3]

2022 KOTLIN

best solution:

textInputLayout.isEndIconVisible = false

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Gabriele Mariotti
Solution 2 MMG
Solution 3 cj3dreams