问题描述
- 当改变 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)
这个方法可以。
结合 KeyboardHidden 和 Configuration
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();
时间: 2024-11-01 10:58:13