问题描述
我为所有智能手机使用相同的EditText。它们都是api 26 +。
<EditText
android:id="@+id/et_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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,它们显示不同的原因是什么?
解决方法
不同的Android手机制造商可以根据需要自定义android操作系统,可以修改键盘布局以显示不同的外观。即使您可以使用可以提供不同键盘UI的应用程序。如果您提到 android:inputType =“ number” ,即使键盘布局显示点(。)或逗号(,),它也不会接受。为什么只接受数字的字段会接受逗号(,)?如果要十进制数,请使用 android:inputType =“ numberDecimal” 。如果要在所有智能手机上使用通用布局,则可以创建自己的键盘布局并对其进行填充,除非您有需要从安全角度涵盖密码/ PIN输入字段等特定要求,否则我不建议您这样做。