我有一個應用程序,並且需要關閉的軟鍵盤上的一個相當大量的動作。例如,當點擊按鈕,當一個新的佈局繪製,上屏幕取向變化,當控制器告訴的UI來,等等。 我使用optionsMenuButton用ViewFlipper翻轉視圖,顯然我想讓鍵盤隱藏在翻轉視圖中(這裏沒有輸入字段)。可靠隱藏軟鍵盤
到目前爲止,我已經試過這些,告訴爲什麼這些都是不可靠的:
這一個沒有工作,因爲我有很多editTexts的,和其他的看法。如果可能的話,我需要一個更通用的,不需要視圖作爲參數的。
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
這一個不適合我在所有的工作:
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
這一個工作,但當視圖被翻轉立即再次會彈出鍵盤。
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
這個有時會起作用,但getCurrentFocus()大部分時間返回null。
InputMethodManager inputManager = (InputMethodManager)
Context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
這一個工程只有在顯示的鍵盤:
getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
這一個不與EditText上的工作方式類似於第一段代碼,但與根佈局,這與方向的變化而變化每次調用時都會被調用。對於橫向/縱向和正常/大型,我有不同的佈局XML。所有根目錄佈局都有ID root
。這很適合第一次,但之後,它不再工作。底線:我已經嘗試了很多軟鍵盤隱藏方法,但沒有一個似乎可靠地工作。 是否有任何可靠隱藏軟鍵盤的方法?
經過一番測試,這似乎是最可靠的方法。 – stealthjong
你能發送代碼示例嗎?在哪裏我應該把Toolkit.getEditText(((ViewParent)findViewById(android.R.id.content))。getChildAt(0)); ? – eyal
嫁給我!我一直在尋找一個很好的解決方案。似乎我找到了一個很好的(而且很短)。謝謝! –