1. 程式人生 > >PopupWindow浮動下拉框與輸入法存在的 pop往上彈出的問題

PopupWindow浮動下拉框與輸入法存在的 pop往上彈出的問題

1. 問題:  當有輸入法框存在的時候,點選彈出PopupWindow浮動下拉框,這時會出現pop往上彈出,感覺就像被擠壓上去了!

2.解決問題

由於是當輸入法框存在時才產生這個問題,輸入法框不存在時不存在這個問題

  1.在點選彈出pop時,寫個強制關閉輸入法的方法。

1.我當時寫了這個方法後還是不能解決這個問題,但是肯定是輸入法框存在導致的問題,難道是我直接 執行了關閉輸入法的方法,彈出pop 時間上有問題

2.為了驗證這個,我寫了一個延遲彈出pop的handler。結果成功了! 可能原因是  當你執行 關閉輸入法的時候 ,輸入法還沒有關閉完成,pop就彈出來了!(猜測)

2.程式碼

1. 關閉輸入法

/**
* 強制隱藏輸入法鍵盤
*/
public static void hideInput(Context context, View view,Handler handler){
InputMethodManager inputMethodManager =
(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
//判斷輸入法鍵盤是否開啟,開啟就延遲,反之不延遲
if (inputMethodManager.isActive()){
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
handler.sendEmptyMessageDelayed(400,200);
}else{
handler.sendEmptyMessage(400);
}
}

    2.然後到你的handler 裡面 執行彈出pop吧