我有一個使用片段保持沉浸模式時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?
您希望應用始終處於全屏模式並控制何時顯示軟鍵盤? –
是的,這是正確的 –
我發佈了一個答案 –