事實證明這是非常可行的,我最初的問題可能與更多的一般Android新手(這是我的第一個Android應用程序)有關,而不是KeyboardView。特別是,我習慣於將可視性作爲一個簡單的二元屬性。
總之:
- 聲明在XML文件中
KeyboardView
與android:visibility="gone"
。
- 在使視圖可見之前,請撥打
setKeyboard()
以連接鍵盤。這很重要,因爲KeyboardView
從鍵盤獲得其大小。
- 要獲得原始密鑰事件,請致電
KeyboardView.setOnKeyboardActionListener()
。在將Dialog
這個功能重構爲我的主要View
之後,我將OnKeyboardActionListener
功能放在了獨立的類中,但這不是必需的。
- 我打電話給
keyboardView.setEnabled(true);
。這似乎不是必要,但我不知道(但)在什麼情況下它是重要的; 也許只有當你撥打setEnabled(false)
。
- 我打電話- 如果用戶不會從鍵盤上方的輸入biox獲得視覺反饋,這將特別有用。
- 然後,用鍵盤全部設置,請致電
keyboardView.setVisibility(VISIBLE);
。
要適當地隱藏鍵盤,只需撥打keyboardView.setVisibility(GONE);
即可。要改變鍵盤(例如在shift鍵或循環鍵符號鍵上,只需再次調用setKeyboard
。我使用Map<<Integer, Keyboard>
來實現延遲創建模式;弱引用可能是可取的,如果程序會運行很長時間,鍵盤不會用得太多。
我創建了一個GitHub存儲庫,其中包含一個完整的工作示例: https://github.com/tagadvance/ Android的鍵盤演示 – Tag 2015-10-25 07:44:45