【问题标题】:EditText opens wrong keyboard on some devices when setting inputType programmatically以编程方式设置 inputType 时,EditText 在某些设备上打开错误的键盘
【发布时间】:2021-10-07 21:23:04
【问题描述】:

我们正在以编程方式设置 EditText 的 inputType 以支持十进制或非十进制数字:

editText.inputType = if (isDecimal) InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL else InputType.TYPE_CLASS_NUMBER 

这适用于大多数设备并打开带有或不带有小数分隔符的数字键盘。然而,在某些设备上,它会打开字母数字键盘,例如在装有 8.1.0 的 Moto G5 或装有 Android 8 的 Caterpillar S31 上。

我们如何解决这个问题,让数字键盘始终打开?

【问题讨论】:

    标签: android android-edittext android-softkeyboard


    【解决方案1】:

    这些手机上是否使用过 Gboard 键盘

    那么请转至PlayStore 并检查更新

    【讨论】:

      【解决方案2】:

      在您所需活动中的清单文件中尝试此操作。

      android:windowSoftInputMode="stateHidden"
      

      例如-

       <activity
              android:name=".MainActivity"
              android:windowSoftInputMode="stateHidden">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>
      

      您也可以检查documentation 来检查其他值。

      【讨论】:

      • 感谢您的反馈!目前此设置设置为 android:windowSoftInputMode="stateAlwaysHidden|adjustResize" 但我们将在稍后将受影响的设备之一放在我们手中时尝试您的建议。目前我不完全理解这种变化应该如何影响键盘的显示方式,但只会影响它的显示时间。我们的键盘显示正确的时间,但不是数字键盘,而是显示字母数字键盘。
      猜你喜欢
      • 1970-01-01
      • 2022-06-30
      • 1970-01-01
      • 2018-03-14
      • 2015-11-27
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多