我有一个使用片段保持沉浸模式时DialogFragment所示
做我躲在我的屏幕的顶部和底部的酒吧,使用下面的代码的Android应用程序。
@Override
protected void onResume() {
super.onResume();
isInBackground = false;
if(null == getFragmentManager().findFragmentById(R.id.content_container))
{
getFragmentManager().beginTransaction().add(R.id.content_container,new PresenterFragment(), PresenterFragment.FRAG_TAG).commit();
}
if(Build.VERSION.SDK_INT >=19)
{
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
}
});
}
}
当所示的软键盘条显示,我可以用这个活,因为他们隐藏键盘时dismissed.However如果对话片段是节目的同时显示软键盘,然后当两个键盘和该对话框片段被解散,它们会留在应用程序的顶部。
我的3个问题是
是否有可能停止softkeyboard改变用户界面模式?
是否可以通过更改UI模式来停止显示DialogsFraments?
编辑:我用下面的代码,看看键盘显示
public static boolean isKeyBoardShown(){
InputMethodManager imm = (InputMethodManager)currentActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isAcceptingText()) {
return true;
} else {
return false;
}
}
- >我知道有一个变通的活动中的对话,但我不能看到一个或返工代码在DialogFragment
工作,如果没有可能,为什么应用程序会卡在了错误的UI模式时,有一个都显示键盘和DialogFrament?
您希望应用始终处于全屏模式并控制何时显示软键盘? –
是的,这是正确的 –
我发布了一个答案 –