我正在使用带有粘性标志
模式的沉浸式全屏模式,这四种模式中的第四种解释如下:https://developer.android.com/training/system-ui/immersive.html
我正在这样做:
if( Build.VERSION.SDK_INT >= 19 ){
//si es mayor o igual a API 19 kitkat ocultamos las barras UI del sistema
mainBody.setSystemUiVisibility(
256 //SYSTEM_UI_FLAG_LAYOUT_STABLE
| 512 //SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| 1024 //SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| 2 //SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| 4 //SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| 4096 //SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);
}
在我的 list 中,我在应用程序级别有以下内容:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
它工作正常,但我的应用程序中有一个微调器,当我触摸微调器时,沉浸式模式会禁用! :S
如何解决这个问题?
谢谢
最佳答案
这里有同样的问题..另请参阅 https://code.google.com/p/android/issues/detail?id=68031
我最接近解决这个问题的方法是(在您的Activity
中)添加全屏标志,并在关闭微调器后 Activity 获得焦点时再次设置全屏:
private void goFullScreen()
{
// Only navigation will be shown when opening a spinner
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().getDecorView().setSystemUiVisibility(yourFlags);
}
@Override
protected void onResume()
{
super.onResume();
goFullScreen();
}
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
// Go full screen again when a spinner is closed
if (hasFocus) {
goFullScreen();
}
}
是的,这是一个解决方法。我将看看扩展 Spinner
。
关于android-layout - 当我打开微调器时,沉浸式全屏模式(粘性标志)被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095607/