2011-10-27 182 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)。 –