EditText 输入类型显示不同的键盘

EditText input type displays different keyboards

我在所有智能手机上使用相同的 EditText。都是api26+.


        <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,] 符号。但是正如您在其中一个键盘中看到的那样,我不允许输入逗号。如何为所有设备使用一种类型的键盘?如果我指定输入类型,它们显示不同的原因是什么?

不同 Android phone 制造定制 android OS 根据他们的需要,可以修改键盘布局以显示不同。即使您可以拥有可以提供不同键盘的应用程序 UI。如果您提到 android:inputType="number" 并且即使键盘布局显示点 (.) 或逗号 (,) 它也不会接受相同的。为什么你会接受只接受数字的字段的逗号(,)?如果你想要十进制数,那么使用 android:inputType="numberDecimal"。如果你想在所有 smartphones 上使用通用布局,那么你可以创建自己的键盘布局并对其进行扩展,除非你有特定的要求需要从安全角度考虑,比如 password/PIN 输入字段。