在启动Activity时自动弹出键盘

Gal*_*lip 95 keyboard android focus android-edittext

我有一个相对简单的问题.我有一个包含很多EditText的活动.当我打开活动时,它会自动聚焦到第一个EditText并显示虚拟键盘.

我怎么能阻止这个?

Vik*_*dar 207

在XML文件的布局标记中使用此属性:

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

正如其他成员在评论中所报告的那样,它不起作用,ScrollView因此您需要将这些属性添加到主要子项中ScrollView.

  • 有趣的是,当我将上面的内容添加到ScrollView时,它不起作用,但它确实适用于LinearLayout (21认同)
  • 这也解决了我的问题.我将此添加到我的活动的RelativeLayout标记中.谢谢! (3认同)
  • 我有一个相对的布局,它不在那里工作 (2认同)
  • 三年半之后,我遇到了同样的问题并用Google搜索了这个帖子.解决了我的问题.谢谢. (2认同)

UKD*_*eek 95

您可以将此添加到Android Manifest活动中:

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


Jor*_*sys 31

我在这里描述了几个实现,但现在我已添加到AndroidManifest.xmlActivity的属性中:

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

我认为这是即使您使用的简单方法fragments.

" stateAlwaysHidden "当活动的主窗口具有输入焦点时,软键盘始终隐藏.


Sid*_*Sid 11

如果您对活动有另一种观点,例如a ListView,您还可以:

ListView.requestFocus(); 
Run Code Online (Sandbox Code Playgroud)

在你的onResume()中抓住焦点editText.

我知道这个问题已得到解答,但只提供了一个对我有用的替代解决方案:)


Bob*_*obs 5

在您的活动代码中使用它:

@Override
public void onCreate(Bundle savedInstanceState) {

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

}
Run Code Online (Sandbox Code Playgroud)


小智 5

/sf/answers/813958351/这几乎是正确的:

@Override
public void onCreate(Bundle savedInstanceState) {

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

}
Run Code Online (Sandbox Code Playgroud)

但是应该是SOFT_INPUT_STATE_HIDDEN,而不是SOFT_INPUT_STATE_ALWAYS_VISIBLE