android - 为什么Android软键盘出现时会出现?

标签 android android-softkeyboard

谁能解释一下软键盘出现和消失的原因?

我有一个包含许多不同控件的布局,主要是 EditText 和按钮。当我第一次显示该页面时,布局顶部的 EditText 具有焦点并且软键盘覆盖了屏幕底部的 45%

我假设键盘在那里是因为 EditText 有焦点,所以我决定在我的页面底部给一个按钮焦点,而不是通过 . . .

  butDone.setFocusableInTouchMode(true);
  bResult = butDone.requestFocus();

... 就在 setContentView() 之后。就给予按钮焦点而言,这很有效。按钮获得了焦点,而 EditText 不再具有焦点,但键盘仍然存在。最终我通过

摆脱了键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

但显然我关于 EditText 具有焦点的理论是错误的。那么有人可以解释关于什么使键盘出现时出现的“规则”,或者这些规则的链接吗?提前致谢!

最佳答案

默认情况下,第一个 EditText 将获得焦点,如果您没有在布局的 XML 中定义有关焦点的任何内容。

检查 this回答更多信息。如果您不想显示键盘而不是关闭键盘,则应该使用此解决方案。

关于android - 为什么Android软键盘出现时会出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415353/

相关文章:

Java Eclipse PhoneGap。无法设置插件?

android - 如何在 Android 键盘中包含建议

android - 当 minSdkVersion 在应用程序更新中更改时会发生什么?

android - 按键图标不起作用

android - 如何在android中以编程方式通过键盘输入

Android 软键盘操作按钮

android - Android 10 上的 EditText 自动填充错误

android - 无法安装 Google Play 服务包,修订版。 11

android - 如何在 Android 应用程序中打开 PDF 并允许用户使用嵌入式超链接?

java - Android cometd 库