添加 phone 数字时,我可以让 Android 隐藏键盘上的 "N"、"Wait" 和 "Pause" 键吗?

Can I make Android hide the "N", "Wait" and "Pause" keys from the keyboard when adding a phone number?

添加 phone 数字字段时,我写了以下内容 XML:

    <EditText
        android:id="@+id/etPhoneNumber"
        style="@style/my_edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="@string/cdu_phone_number_hint"
        android:inputType="phone"
        android:autofillHints="phone"
        android:digits="+0123456789"
        android:textColor="@color/black"
        android:visibility="visible" />

但是,即使我指定了 digits,Android 仍然会显示“等待”、“暂停”等按钮。有什么办法可以不显示这些按钮吗?

键盘是一个单独的应用程序,可以自行决定显示哪些键。您对其唯一的控制是 inputType,它作为您想要的键盘提示。显然,无论您使用的是什么键盘,都希望显示这些键。你无法阻止它。您可以尝试将输入类型更改为数字,看看您是否喜欢这样。但请记住,无论您做什么,它都会在不同的设备上以不同的方式显示,因为它们会使用不同的键盘应用程序(每个设备上都没有单一的键盘,只有一些比其他设备更常见 - 用户总是可以决定也可以自己安装)。

您需要使用 InputMethodManager class InputMethodManager

 /**
 * Input method manager
 *  输入法显示和隐藏
 * @param show
 */
fun inputMethodManager(show:Boolean){
    val imm: InputMethodManager = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
    if (show){
        //show
        binding.mainFrBehaviorAddWord.mainFrBehaviorEd.requestFocus()
        binding.mainFrBehaviorAddWord.mainFrBehaviorEd.isFocusableInTouchMode = true
        imm.showSoftInput(EditText, InputMethodManager.RESULT_UNCHANGED_SHOWN)
    }else{//hide
        imm.hideSoftInputFromWindow(EditText.windowToken, 0)
    }
}