29

Would be possible have my hint text always top, as if it were focusable?

I tried this:

 <android.support.design.widget.TextInputLayout
            android:id="@+id/etSurnameInput"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/llNameImage"
            android:hint="My Hint Text"
            app:hintEnabled="true"
            app:hintAnimationEnabled="false"
            android:textColorHint="@color/gray_title">
Aris Guimerá
  • 1,095
  • 1
  • 12
  • 27

5 Answers5

28

Actually, from com.google.android.material:material:1.3.0-alpha03 or higher, you can simply set app:expandedHintEnabled="false" to make it always float.

Dimas Mendes
  • 2,664
  • 1
  • 21
  • 19
5

Here's a hack - programmatically add a space in the text if it's empty. However, you would then have to remove the space if it's focused, else the user will start typing with a leading whitespace. Another option is to always trim the text typed by user.

Aba
  • 2,307
  • 2
  • 18
  • 32
3

My final solution back then was to actually just set hintEnabled="false" & use a TextView on top.

Aba
  • 2,307
  • 2
  • 18
  • 32
1

You can set android:minLines="2" to the TextInputEditText or greater than 2. Also keep android:gravity="top"

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:gravity="top"
        android:hint="Username"
        android:minLines="2" />
Zain
  • 37,492
  • 7
  • 60
  • 84
0

set android:textAlignment="center" to TextInputEditText and android:gravity="start" to TextInputLayout

<com.google.android.material.textfield.TextInputLayout
                android:id="@+id/tilName"
                app:expandedHintEnabled="false"
                android:hint="@string/name_hint"
                android:gravity="start"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <com.google.android.material.textfield.TextInputEditText
                    android:layout_gravity="center"
                    android:hint="@string/name_hint"
                    android:textAlignment="center"
                    android:id="@+id/fieldName"
                    android:inputType="text"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    />