開始
LItfGGH.gif
https://github.com/Mrqinlei/CommentDialog
自定義Dialog
首先是自定義一個評論的帶 EditText 的 dailog (這個可以看我前面的文章http://www.lxweimin.com/p/41a6c1c2237f)
處理 Dialog 中 Edittext 鍵盤不彈出
鍵盤無法彈出處理, 這是因為系統給 Dialog 設置了 WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
這個參數會讓Dialog遮擋住軟鍵盤,顯示在軟鍵盤的前面。
//使得點擊 Dialog 中的EditText 可以彈出鍵盤
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
//總是顯示鍵盤
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
處理軟鍵盤顯示時,點擊返回鍵關閉 dialog 和軟鍵盤
系統在處理返回鍵時, 如果顯示了軟鍵盤, 則會先處理軟鍵盤的隱藏
這里我們自定義 EditText 來處里軟鍵盤顯示時的返回鍵的事件監聽
自定義 EditText 重寫 dispatchKeyEventPreIme() 事件
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (callBack != null) {
callBack.callBack();
}
return true;
}
return super.dispatchKeyEventPreIme(event);
}