当改变 fragments 时 Android 隐藏键盘

当我改变 fragments 时,因为在屏幕上有一个 EditText 区域,我就使用下面的代码关闭键盘。如果键盘在屏幕上,我发现不了任何检测。

Activity activity = getActivity();
InputMethodManager inputMethodManager = (InputMethodManager)  activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
try
{
    inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
catch (Exception e)
{

}

我认为使用 onConfigurationChanged(Configuration config) 这个方法可以。
结合 KeyboardHiddenConfiguration

class MyFrag extends Fragment{

  @Override
  public void onConfigurationChanged(Configuration config){
    //Check flags
    switch(config.keyboardHidden){
      case KEYBOARDHIDDEN_NO:
        // do something
        break;
      case KEYBOARDHIDDEN_YES:
        break;
    }
  }

}

在 manifest 中

<activity ...
  android:configChanges="keyboardHidden|orientation|screenSize|screenLayout"/>

并且使用

Configuration config = getResources().getConfiguration();