EditText 输入类型显示不同的键盘
Posted
技术标签:
【中文标题】EditText 输入类型显示不同的键盘【英文标题】:EditText input type displays different keyboards 【发布时间】:2021-01-03 11:02:24 【问题描述】:我对所有智能手机都使用相同的 EditText。它们都是 api 26+。
<EditText
android:id="@+id/et_input"
android:layout_
android:layout_
android:background="@android:color/transparent"
android:digits="0123456789,"
android:gravity="center"
android:inputType="number"
android:letterSpacing="0.2"
android:maxLength="9"
android:maxLines="1"
android:focusableInTouchMode="true"
android:imeOptions="actionDone"
android:textSize="@dimen/default_text"
android:textStyle="bold|italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
但在某些智能手机中,键盘的显示方式不同。在 EditText 我允许用户编写 [0123456789,] 符号。但正如您在其中一个键盘中看到的那样,我不允许输入逗号。如何为所有设备配备一种键盘?如果我指定 inputType,它们显示不同的原因是什么?
【问题讨论】:
【参考方案1】:不同的安卓手机制造商根据自己的需要定制安卓操作系统,可以修改键盘布局以呈现不同的外观。甚至您也可以拥有可以提供不同键盘 UI 的应用程序。如果您提到 android:inputType="number" 并且即使键盘布局显示 dot(.) 或 Comma(,) 它也不会接受相同的。为什么你会接受逗号(,)作为只接受数字的字段?如果您想要十进制数,请使用 android:inputType="numberDecimal"。如果您想在所有智能手机上使用通用布局,那么您可以创建自己的键盘布局并对其进行扩展,除非您有特定要求需要从安全角度考虑,例如密码/PIN 输入字段,否则我不会建议您。
【讨论】:
您的回答似乎是正确的。但是 numberDecimal 不允许放置逗号。我只能把点放在那里 @CallMePedro numberDecimal 将只允许数字和点(。)以允许浮动数字,如金额字段等。 输入类型号应该只接受 0-9 之间的数字,但是如果你指定参数 android:digits 并在那里添加一个逗号或点,那么输入类型号也将在 editText 中接受逗号和点 在一部智能手机中,它在其他号码中接受。所以可能我会允许用户编写字符串并为他们显示数字键盘 是的,您只能通过数字键盘接受带小数的数字。一旦焦点移出当前的编辑文本,您就可以以您想要的特定格式显示,包括逗号。以上是关于EditText 输入类型显示不同的键盘的主要内容,如果未能解决你的问题,请参考以下文章
android开发中,EditText点击事件可以响应,就是不弹出软键盘。怎么解决,EditText是在Dialog中使用的
Android EditText如何设置默认是不弹出软键盘需要点击是才跳出来
EditText常用属性:为文本输入框指定软键盘类型和软键盘回车键图标设置