Android 为什么会出现软键盘?

Android 为什么会出现软键盘?,android,Android,我正在使用Android模拟器测试我的第一个Android应用程序。虽然emulator窗口右侧有一个功能正常的硬键盘,但在EditText控件中编辑时,软键盘会显示出来 我知道可以通过使用InputMethodManager的实例来隐藏软键盘,但是我想知道为什么软键盘会出现(当硬键盘可用时) 对我来说,作为一个用户,这种情况下的软键盘会让人分心,因此如果有用的话,我想把它扔掉这个问题是关于实际环境(即,当有硬键盘时是否使用软键盘,真实世界的设备是否与仿真器的行为类似)以及解决这个问题的一般策略

我正在使用Android模拟器测试我的第一个Android应用程序。虽然emulator窗口右侧有一个功能正常的硬键盘,但在
EditText
控件中编辑时,软键盘会显示出来

我知道可以通过使用
InputMethodManager
的实例来隐藏软键盘,但是我想知道为什么软键盘会出现(当硬键盘可用时)

对我来说,作为一个用户,这种情况下的软键盘会让人分心,因此如果有用的话,我想把它扔掉这个问题是关于实际环境(即,当有硬键盘时是否使用软键盘,真实世界的设备是否与仿真器的行为类似)以及解决这个问题的一般策略


谢谢。我会更新任何有用的提示。

在我的G1上,当硬键盘打开时,软键盘没有出现。但我不确定一款总是打开键盘的设备(如三星Galaxy PRO,如果我没弄错的话)是否也会这样做


由于emulator没有滑动键盘,我认为这种行为就是这样。

在我的G1上,当硬键盘打开时,软键盘没有出现。但我不确定一款总是打开键盘的设备(如三星Galaxy PRO,如果我没弄错的话)是否也会这样做


由于仿真器没有滑动键盘,我认为这种行为就是如此。

使用触摸屏设备+硬键盘,您可以灵活地使用两者。在大多数带有硬键盘的设备上,键盘必须拖出。只需轻触屏幕就容易多了。如果你想大量打字,你会不厌其烦地将键盘滑出


Android为您提供了为所有这些行为编程的灵活性。

通过触摸屏设备+硬键盘,您可以灵活地使用两者。在大多数带有硬键盘的设备上,键盘必须拖出。只需轻触屏幕就容易多了。如果你想大量打字,你会不厌其烦地将键盘滑出


Android为您提供了为所有这些行为编程的灵活性。

实际上,AVD仿真器有一个滑出式键盘。 AVD选项“键盘支持”指示模拟设备是否具有任何形式的物理键盘。选项“键盘盖支持”表示设备是否有可以打开或关闭的键盘(滑出或您拥有的)。 只要在使用这些选项设置的设备上实际“打开”和“关闭”键盘, 您需要切换方向,这通常是您使用真实滑出式键盘手机时所做的操作,例如原始Droid:

在emulator中,您可以使用
Ctrl+F11
/
Ctrl+F12
7
/
9
(仅在数字键盘上,禁用
NumLk
)来控制此方向更改。 通过检查值
getResources().getConfiguration().hardKeyboardHidden==config.hardKeyboardHidden\u YES

至于软键盘是否出现,在我看来,处理这些事情取决于作为程序员的您。下面是一个可以在AVD中尝试的示例:

  • 在“键盘支持”和“键盘盖支持”都设置为“是”的情况下设置仿真器
  • 启动模拟器,然后打开Android内置的消息传递应用程序
  • 单击其中一个文本框-应显示软键盘
  • 用Ctrl+F12切换模拟器的方向-软键盘现在应该消失了
    • 请注意,仿真器本身似乎存在问题,切换回纵向模式不会导致应用程序将自己重新绘制回纵向布局。但他们会切换回关闭键盘模式,这会产生一些奇怪的、横向的行为

有关捕获键盘打开/关闭事件的代码示例,请查看:

实际上,AVD emulator有一个滑出式键盘。 AVD选项“键盘支持”指示模拟设备是否具有任何形式的物理键盘。选项“键盘盖支持”表示设备是否有可以打开或关闭的键盘(滑出或您拥有的)。 只要在使用这些选项设置的设备上实际“打开”和“关闭”键盘, 您需要切换方向,这通常是您使用真实滑出式键盘手机时所做的操作,例如原始Droid:

在emulator中,您可以使用
Ctrl+F11
/
Ctrl+F12
7
/
9
(仅在数字键盘上,禁用
NumLk
)来控制此方向更改。 通过检查值
getResources().getConfiguration().hardKeyboardHidden==config.hardKeyboardHidden\u YES

至于软键盘是否出现,在我看来,处理这些事情取决于作为程序员的您。下面是一个可以在AVD中尝试的示例:

  • 在“键盘支持”和“键盘盖支持”都设置为“是”的情况下设置仿真器
  • 启动模拟器,然后打开Android内置的消息传递应用程序
  • 单击其中一个文本框-应显示软键盘
  • 用Ctrl+F12切换模拟器的方向-软键盘现在应该消失了
    • 请注意,仿真器本身似乎存在问题,切换回纵向模式不会导致应用程序将自己重新绘制回纵向布局。但他们会切换回关闭键盘模式,这会产生一些奇怪的、横向的行为

有关捕获键盘打开/关闭事件的代码示例,请查看:

在真实设备上测试后;在摩托罗拉的里程碑上,有一个滑动键盘,如果它打开软键B
    Configuration config = getContext().getResources().getConfiguration();
    int keyboardHidden=config.hardKeyboardHidden;
    int keyboard=config.keyboard;