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

Viewed 1698

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

4 Answers

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

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.

2022 KOTLIN

best solution:

textInputLayout.isEndIconVisible = false

Add this android:visibility="gone"

Related