我已經在我的應用程序中實現了ActionBar選項卡。但在換頁時我遇到了一個問題。我的選項卡主要包含webview,但一個選項卡包含編輯文本。 當我點擊編輯文本鍵盤出現,並與鍵盤出現,如果我改變選項卡,鍵盤不會消失。我嘗試了一些簡單的解決方案,如隱藏它,但沒有成功。鍵盤不隱藏在ActionBar選項卡更改
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(fragment.getView().getApplicationWindowToken(), 0);
這個我打電話在實現ActionBar.TabListener的類的onTabSelected()。我不知道如何解決這個問題,也沒有得到相關信息。
在此先感謝。任何幫助將不勝感激。
更新和回答
埃裏克回答有些給了我一推,幫我實現了答案,所以我標誌着他的回答與我的改變是正確的。即我已經在我的onTabUnselected
添加了eric的代碼,但不是在tabSelected中,因爲當時我正試圖獲取視圖,因此未創建視圖,因此視圖爲空。所以我最後的代碼是
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft)
{
View target = initialisedFragment.getView().findFocus();
if (target != null)
{
InputMethodManager mgr = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(target.getWindowToken(), 0);
}
}
喔,K。我沒有看到視圖,因爲通常我們會將tabHost傳遞給此視圖,但在操作欄中沒有選項卡主機。所以我更願意通過這個觀點。謝謝回覆。我正在嘗試。再次感謝。 – Android 2012-07-26 06:07:31
這是行不通的,甚至你的鏈接傳遞一個editText作爲視圖。但是在這裏我沒有任何視圖,因爲fragment.getView()總是作爲null傳遞。即使在manifest中添加alwaysHidden也不起作用。不知道如何繼續...... – Android 2012-07-26 06:13:11
你需要弄清楚有什麼重點。也許你可以使用getActivity()或getRootView()來獲得一個視圖,然後找到它的焦點?如果'getView()'爲null,那麼你的'Fragment'可能沒有佈局或沒有正確實例化...... – Eric 2012-07-26 17:35:15