你需要重寫InputMethodService方法onEvaluateInputViewShown(),以評估爲真,即使是有硬鍵盤。請參閱onEvaluateInputShown()和InputMethodService的軟輸入視圖部分。嘗試創建您自己的自定義InputMethodService類來覆蓋此方法。
編輯:source for onEvaluateInputShown()應該有所幫助。解決方案應該像創建自己的擴展InputMethodService的類一樣簡單,並重寫這個只有幾行的方法。確保將自定義服務添加到清單中。
從來源:
「重寫此方法以控制在軟輸入區域應顯示給用戶的默認實現只顯示輸入視圖時沒有硬鍵盤或鍵盤被隱藏。如果你改變了這個返回值,只要返回的值可能改變了,就可以自己調用updateInputViewShown()來重新使用它。「
public boolean onEvaluateInputViewShown() {
Configuration config = getResources().getConfiguration();
return config.keyboard == Configuration.KEYBOARD_NOKEYS
|| config.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_YES;
}
Here你可以檢查可能的配置。 Configuration.KEYBOARD_NOKEYS對應於沒有硬件鍵盤。如果沒有硬件鍵盤或硬件鍵盤被隱藏,則此方法返回true(應顯示軟鍵盤)。如果刪除這兩項檢查並僅返回true,則即使連接了硬件鍵盤,也應使軟件鍵盤可見。
嘗試(未測試):
public boolean onEvaluateInputViewShown() {
return true;
}
由於這個返回值不會改變,你會不會需要調用updateInputViewShown()自己。如果您以不同方式修改此方法,請務必記住此詳細信息。
我也有同樣的問題。請告訴我該怎麼做。我已經應用了下面的ans代碼,但仍然軟鍵盤不能正常工作。 – 2014-02-07 11:24:38