Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom Position of Hint in Edit Text box.

I was wondering if there was any way that I could get a hint at the bottom of an Edit Text view -- and then the user to start entering text at the top of the box.

As a bonus question, is there any way I can make the hint NOT disappear once the user starts entering text.

like image 722
hwrdprkns Avatar asked Jul 05 '10 08:07

hwrdprkns


People also ask

How do I change the cursor position in EditText?

Say in your xml's edittext section, add android:paddingLeft="100dp" This will move your start position of cursor 100dp right from left end. Same way, you can use android:paddingRight="100dp" This will move your end position of cursor 100dp left from right end.

How do you center text hint on android?

As stated in other answers, it's android:gravity="center" (or a similar variant) that centers the text, not ellipsize.

What is inputType in android?

The android:inputType attribute allows you to specify various behaviors for the input method. Most importantly, if your text field is intended for basic text input (such as for a text message), you should enable auto spelling correction with the "textAutoCorrect" value.


3 Answers

You can set the position of the text using the "gravity" attribute (as noted at http://developer.android.com/reference/android/widget/TextView.html#setGravity(int)). So to put the text at the bottom you would have;

android:gravity="bottom"

And to answer your bonus question; No, you can't display the hint when text is entered into the edit text view. Displaying the hint only when the box is empty is the defined behaviour as noted at http://developer.android.com/reference/android/widget/TextView.html#setHint(int)

(and yes, I know the links are for TextView, but EditText derives all of its' text positioning and hint handling functionality from TextView).

like image 199
Al Sutton Avatar answered Sep 30 '22 14:09

Al Sutton


Actually THERE IS a way to prevent hint from hiding, and it's a cool one :-)

It gives you the Floating Label look with smooth animation very easily and it's from android itself. No extra libraries and stuff.

Try this:

<android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Touch me and I'll fly!"/>
</android.support.design.widget.TextInputLayout>

You can change the behaviour using other xml tags like android:gravity="start|center|end" and others.

As a BONUS, you can use error messages with it :-) Here's the link to that question: https://stackoverflow.com/a/30953551/6474744

And sorry I do not have enough reputatuion to post images, so help yourself:

http://i0.wp.com/androidlift.info/wp-content/uploads/2015/09/Screenshot_2015-09-28-17-03-561.png

Enjoy :-)

like image 36
Pedram Avatar answered Sep 30 '22 14:09

Pedram


The problem with using both android:gravity and android:hint is that they are inter-linked with regard to cursor position.When you position the hint using gravity and you start entering text, it is entered in the same position as the your hint which is a problem if you want it to start traditionally on the top-left corner.

like image 21
surbian Avatar answered Sep 30 '22 14:09

surbian