我正在使用Android模拟器来测试我的第一个Android应用程序。虽然仿真器窗口右侧有一个功能正常的硬键盘,但在EditText
控件中进行编辑时会显示软键盘。
我知道使用InputMethodManager
实例隐藏软键盘的选项,但是我想知道为什么软键盘会出现(当硬键盘可用时)。
对我来说,作为一个用户,在这种情况下软键盘相当分散注意力,因此如果有用,我想摆脱它。 - 这个问题是关于实际情况(即,当有硬键盘时,软键盘是否有任何用途,现实设备的行为与模拟器类似)以及解决问题的一般策略。
感谢。我会提出任何有用的提示。
答案 0 :(得分:1)
在我的G1上,当硬键盘打开时,软键盘没有出现。但是我不确定一个总是打开键盘的设备(如果我没弄错的话就像三星Galaxy PRO一样)也是如此。
由于模拟器没有滑动键盘,我认为这种情况就是这种情况。
答案 1 :(得分:1)
使用触摸屏设备+硬键盘,您可以灵活地使用它们。在大多数带有硬键盘的设备上,必须拖出键盘。点击屏幕要容易得多。如果你想输入很多东西,你可能会把键盘滑出去。
Android让您可以灵活地为所有这些行为进行编程。
答案 2 :(得分:1)
实际上,AVD模拟器 有一个滑出式键盘。 AVD选项“键盘支持”表示模拟设备是否具有任何形式的物理键盘。选项“键盘盖支持”表示设备是否具有可以打开或关闭的键盘(滑出或有什么)。 至于在使用这些选项设置的设备上实际“打开”和“关闭”键盘, 你需要切换方向,这通常是你用现实世界中的滑出式键盘手机所做的,例如:原来的Droid:
Original Droid with slide-out keyboard open
在模拟器中,您可以使用Ctrl+F11
/ Ctrl+F12
或7
/ 9
控制此方向更改(仅在数字键盘上,关闭NumLk
)。
您可以通过选中值getResources().getConfiguration().hardKeyboardHidden == config.HARDKEYBOARDHIDDEN_YES
就软键盘是否出现而言,在我看来,处理这些事情取决于程序员。以下是您可以在AVD中尝试的示例:
有关捕捉键盘开启/关闭事件的代码示例,请查看:http://www.how-to-develop-android-apps.com/how-to-detect-screen-orientation-change-in-android/
答案 3 :(得分:0)
在现实世界的设备上测试后;在具有滑动键盘的摩托罗拉里程碑上,如果它打开,则不显示软键盘,但是当它关闭时,显示软键盘。在具有永久显示键盘的HTC Cha-Cha上,手机始终使用硬件键盘。即使在横向和硬键盘使用非常困难,它也不会显示软键盘(即使安装了软键盘,我也无法在键盘和语言设置下选择使用它。)
有关手机的其他信息,您可以使用以下内容。它们将返回键盘类型以及是否为硬键盘并显示。注意:我测试的没有硬键盘的手机报告说hardKeyboardHidden = 2; (表示隐藏=是),但键入报告为软键盘是有意义的。
Configuration config = getContext().getResources().getConfiguration();
int keyboardHidden=config.hardKeyboardHidden;
int keyboard=config.keyboard;
http://developer.android.com/reference/android/content/res/Configuration.html#HARDKEYBOARDHIDDEN_NO