我正在开发一个Android应用程序,现在我正在创建一个密码屏幕,它将有四个editText来容纳四位数字。
这是我的password.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/firstNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="14dp"
android:layout_marginTop="191dp"
android:ems="10"
android:inputType="textPassword"
android:lines="1"
android:maxLength="1"
android:maxLines="1"
android:minLines="1" >
<requestFocus />
</EditText>
</RelativeLayout>
这就是我得到的:
但是editText太大了。
如何更改宽度以仅适合一个字符?
答案 0 :(得分:16)
将其更改为android:ems="1"
<EditText
android:id="@+id/firstNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="14dp"
android:layout_marginTop="191dp"
android:ems="1"
android:inputType="textPassword"
android:lines="1"
android:maxLength="1"
android:maxLines="1"
android:minLines="1" >
http://developer.android.com/reference/android/R.attr.html#ems
“em”是来自排版的术语 - 基本上你可以把它想象成指定字体大小的1个字符的宽度。这是首选,因为即使您更改字体大小,它也总是一个字符宽。
答案 1 :(得分:0)
设置android:maxEms =“1”或删除wrap_content并设置宽度
android:layout_width="40dp"
android:layout_height="40dp"
答案 2 :(得分:-1)
如果要设置物理编辑文本的物理宽度,可以使用
android:maxWidth="your size in dp"
但是如果你想在其中接收单个字符,你可以使用
android:maxLength="1"