1
在片段上,我有以下OnKeyListener。我用它來隱藏該片段的內部視圖(如果它當前顯示的話)。如果它沒有顯示,我不會消耗按鍵和Android的。隱藏軟鍵盤後OnKeyListener停止工作
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
if (isSomeViewShowing) {
hideSomeView();
return true;
}
// Back pressed but view is not showing. Not consuming the event.
return false;
}
// Back not pressed. Not consuming the event.
return false;
}
});
它可以很好地隱藏視圖,並進入正常的片段/活動堆棧中時的觀點是不存在的,但如果用戶使用軟鍵盤輸入文本在一個EditText,然後隱藏它停止工作鍵盤。
我知道OnKeyListener不適用於軟鍵盤,而且這對我的需要也是可以的。我只需要聽者在輸入完成並隱藏鍵盤後繼續工作。
有沒有辦法阻止這種情況發生?
解決方法是將listen for when keyboard is dismissed添加到OnKeyListener,當鍵盤被解散時,但實現這會增加一個簡單任務的複雜度。
謝謝。我已經在其他片段上做了這個,但我不喜歡在沒有修改Activity的情況下不能實現它們。無論如何,我會這樣做,因爲它似乎是真正解決問題的唯一解決方案。 – buzoherbert