Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Android, how to create EditText of fixed width?

I would like to create an EditText which accepts only numbers, has a maximum of 4 numbers, and is never narrower than it would be if filled with 4 numbers (does not shrink when empty, or have to expand to accommodate 4 numbers, so it's fixed.)

The first 2 are accomplished with: android:inputType="number" and android:maxLength="4".

How can I set the minimum length?

like image 297
ab11 Avatar asked Nov 23 '10 15:11

ab11


2 Answers

One rarely-used (AFAIK) attribute of an EditText that you can use is:

android:ems="4"

This makes the EditText exactly 4 ems wide. An em width is the width of the widest (M) character in the selected font.

like image 64
Kevin Coppock Avatar answered Sep 22 '22 10:09

Kevin Coppock


A little hackish, but you can put your EditText inside a FrameLayout alongside with another TextView with text="0000" and visibility=invisible.

FrameLayout Should have width=wrap_content and your EditText will have width=match_parent.
That should make it the right width always.

The advantage of this is, it's 100% xml-side, no code involved.

<FrameLayout  android:layout_width="wrap_content"  android:layout_height="wrap_content">  <TextView     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:text="0000"     android:visibility="invisible" />  <EditText     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:inputType="number"     android:maxLength="4" /> </FrameLayout> 
like image 44
Jean Avatar answered Sep 18 '22 10:09

Jean