Android屏幕键盘自动弹出

Jer*_*gan 137 android android-softkeyboard

我的一个应用程序有一个"打开屏幕"(基本上是一个菜单),EditText后面跟着几个Buttons.问题是,我的一些用户报告说,当他们打开应用程序时,它会自动弹出屏幕键盘而不会触摸屏幕EditText.据我所知,所有这些用户都在使用HTC Hero.

这是1.5中的错误吗?我能做些什么吗?

Don*_*rty 276

您可以在activity的onCreate方法中使用以下代码行,以确保仅当用户单击EditText时弹出键盘

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

  • 或者使用`android:windowSoftInputMode ="stateHidden"`喜欢[这里](http://stackoverflow.com/questions/2892615/how-to-remove-auto-focus-keyboard-popup-of-a-field-when-该屏幕-节目向上/ 4454195#4454195) (78认同)

小智 84

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:windowSoftInputMode="stateHidden"
              >
Run Code Online (Sandbox Code Playgroud)

这适用于Android 3.0,3.1,3.2,4.0 - 用于编译的编辑器(Eclipse 3.7)

将'windowSoftInputMode ="stateHidden"'放在应用程序的清单XML文件中,用于您希望软件键盘保持隐藏的EACH活动.这意味着键盘不会自动启动,用户必须"点击"文本字段来提升它.我搜索了近一个小时的工作,所以我想我会分享.

  • android:windowSoftInputMode="stateHidden|adjustNothing" 如果您使用片段并且不希望键盘更改布局也很有帮助 (2认同)

Sat*_*omu 6

此代码适用于所有Android版本:

@Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_login);

 //Automatic popping up keyboard on start Activity

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

 or

 //avoid automatically appear android keyboard when activity start
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
 }
Run Code Online (Sandbox Code Playgroud)


Ben*_*Ben 6

将此添加到 XML 的父布局中。

android:focusable="true" 
android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)

它确保在 Activity 启动时焦点不在 editText 上。


小智 5

AndroidManifest.xml中添加:

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

它完美地运作.:)