2011-10-27 147 views
0

我在想关于屏幕键盘(osk)。Android屏幕键盘和B4A

当我处于肖像模式时,osk显示在屏幕的底部,只覆盖我的应用的下半部分。这是理想的,因为你仍然可以看到我的文本框位于应用程序的上半部分。但是当方向改变为横向时,osk会用自己的文本区域覆盖整个应用程序(隐藏我的文本框)。

此osk文本区域仅在横向模式下显示。这是如何在所有Android上的奥斯卡行为,或它是特定于三星标签7“或其他?

有没有办法来防止奥斯卡在横向模式显示自己的文本框?如果不是,我会有设计自己的奥斯卡如果我设计自己的奥斯卡,我仍然可以利用Android的自动完成通过B4A?

我已经尝试了AutoCompleteEditText,但它不工作的方式,Android的自动完成做的更接近我所需要的。

有什么建议?

感谢你的帮助,

Bob Gately

回答

2

更好的答案。您可以使用反射库来禁用全屏键盘:

Dim r As Reflector 
r.Target = EditText1 
r.RunMethod2("setImeOptions", 268435456, "java.lang.int") 'IME_FLAG_NO_EXTRACT_UI constant 
+0

啊哈!我还没有看过反射库。感谢您的代码示例 - 我会试一试。 –

+0

反射代码示例是完美的解决方案。现在屏幕上的键盘只显示键盘(和自动完成),并没有掩盖我的应用程序的其余部分。现在我不必重新发明键盘和自动完成。 我想了解更多关于思​​考。 非常感谢! –

0

这是所有Android在横向时的默认行为。 你可能想看到这个link实现自定义键盘:

+0

感谢Erel的快速回复。我已经查看了自定义键盘的链接,并可以使用这些示例作为制作自己的键盘的起点。 如果我制作自己的键盘,我仍然需要以类似于Android键盘的方式提供自动完成功能。有没有办法从B4A访问Android自动完成库? –

+0

PS:我正在玩另一个Android编程应用程序,与屏幕键盘相关的文本区域不会以横向模式显示 - 只有键盘可见,测试应用程序在屏幕上半部分仍然可见。我的猜测是因为应用程序正在浏览器中运行(HTML5)。 –