アプリに ActionBar Tab を実装しました。しかし、タブの変更中に 1 つの問題に直面しています。私のタブには主に webview が含まれていますが、1 つのタブには編集テキストが含まれています。テキストの編集をクリックするとキーボードが表示され、タブを変更するとキーボードが表示され、キーボードが消えません。明示的に非表示にするなどの簡単な解決策をいくつか試しましたが、成功しませんでした。
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(fragment.getView().getApplicationWindowToken(), 0);
これは、ActionBar.TabListener を実装するクラスの onTabSelected() で呼び出しています。この問題を解決する方法がわかりません。関連情報も得られません。
前もって感謝します。どんな助けでも大歓迎です。
更新と回答
エリックの回答は、私にプッシュを与え、回答を達成するのに役立ちました。つまり、エリックのコードをonTabUnselected
tabSelected ではなく my に追加しました。その瞬間にビューを取得しようとしたときにビューが作成されなかったため、ビューが null として取得されていました。だから私の最終的なコードは
@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);
}
}