Search code examples
androidandroid-drawableandroid-textinputlayoutmaterial-components-android

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

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