2016-09-15 70 views
0

我正在開發一個android應用程序。在頁面底部的活動中,我顯示了一個popupWindow,並用這個popupwindow取代了鍵盤。這個popupWindow在裏面有一個searchview,所以當searchview焦點時,鍵盤會顯示出來,並且popupWindow會向上滑動。現在當我按下後退按鈕(電話的後退按鈕)時,鍵盤和popupwindow都會關閉。 因此,我只想在這裏關閉鍵盤,在鍵盤關閉後,popupwindow應該滑下。關於BackPress的鍵盤和彈出窗口關閉

我嘗試了下面的事情:

setBackgroundDrawable(new BitmapDrawable()); 
poupupWindow.setFocusable(true); 

應用KeyListner也popupWindow,但它不工作。

 popupWindow.getContentView().setOnKeyListener(new View.OnKeyListener() { 
        @Override 
        public boolean onKey(View v, int keyCode, KeyEvent event) { 

        if (keyCode == KeyEvent.KEYCODE_BACK && 
           event.getAction() == KeyEvent.ACTION_DOWN)    { 
        return true;       
} return false; 
        } 
       }); 

如果有人對此有所瞭解,請幫助我。感謝一噸先進的:)

回答

0

添加代碼隱藏鍵盤內使用onKeyDown()mehod鍵盤監聽器。

 boolean isKeyboardHidden=false; 
     @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (event.getAction() == KeyEvent.ACTION_DOWN) { 
      switch (event.getKeyCode()) { 
       case KeyEvent.KEYCODE_BACK; 
         if(!isKeyboardHidden && popupview.isFocused())         
         { 
          InputMethodManager imm = 
            (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 

          imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 

          isKeyboardHidden=true; 
         } 
       return true;       
      } 
     } 
     return super.onKeyDown(keyCode, event); 
     } 
+0

但是當用popupwindow打開鍵盤時,按下後退按鈕時不會調用setOnKeyListener。我怎樣才能得到這個Listener呼叫。請幫助,非常感謝先進的。 :) –

+0

將關鍵偵聽器添加到您的活動或片段。並檢查搜索視圖是否重點。如果它聚焦隱藏鍵盤。 –

+0

你可以請張貼一個例子來做同樣的事情。 –