How to remove auto focus/keyboard popup of a field when the screen shows up?

Pen*_*m10 101 keyboard android popup android-softkeyboard

我有一个屏幕,其中第一个字段是EditText,它在启动时获得焦点,也弹出数字输入类型,这是非常烦人的

如何确保在活动开始时没有获得焦点,和/或输入面板没有被提升?

Mit*_*kum 148

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

要么

在应用程序标记中的清单文件中设置活动属性,如下所示

android:windowSoftInputMode="stateHidden"
Run Code Online (Sandbox Code Playgroud)

  • 简单回答......感谢Mitual Nakum (2认同)

小智 143

转到您的应用程序清单文件,并为要禁用自动键盘弹出窗口的该活动写下此行.

android:windowSoftInputMode="stateHidden"
Run Code Online (Sandbox Code Playgroud)


dan*_*mux 20

以编程方式没有显示键盘,但默认小部件仍然接收焦点调用:

getWindow().setSoftInputMode(WindowManager.
                             LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

onResume()


Xar*_*han 10

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

onCreate()中调用上面的方法.除非用户选择EditText,否则阻止显示softKeyboardtapping or clicking.

或者只是添加android:windowSoftInputMode="stateHidden"Activity标签Manifest.xml


urS*_*Sus 6

这通常是一团糟.我尝试的第一件事是尝试通过另一个视图窃取焦点.您还必须具有focusable和focusableInTouchMode.

<TextView
  ...
  android:focusable="true"
  android:focusableInTouchMode="true">

    <requestFocus/>
</TextView>
Run Code Online (Sandbox Code Playgroud)


Jas*_*son 5

有另一个视图抓住焦点。默认情况下,当布局膨胀时,第一个可聚焦的 View 将获得焦点。您可以通过 XML 请求关注不同的视图:

<TextView
    android:layout_width="wrap_parent"
    android:layout_height="wrap_content"
    android:text="Some other view">

    <requestFocus />
</TextView>
Run Code Online (Sandbox Code Playgroud)

这适用于任何视图。

如果要以编程方式执行此操作,可以使用view.requestFocus().