我有一个Android应用程序,它使用沉浸式模式进行所有活动 - 所以它是一个完整的全屏应用程序。
我有一个BaseActivity类,所有其他活动都可以从中扩展。在此活动中,我调用以下内容以启用全屏/沉浸式
HelmiBlankActivity:
private boolean apiLowerImmersive = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
apiLowerImmersive = true;
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus && !apiLowerImmersive ) {
getWindow().getDecorView().setSystemUiVisibility(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
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
}
在活动中效果很好,问题是:当打开一个新活动(按意图)时,动作栏/标题栏会显示一段时间,然后再次隐藏 - 这似乎有些迟钝/错误。
该应用程序还有一个主题: styles.xml:
<style name="FullscreenTheme" parent="android:Theme.Holo.Light">
<item name="android:windowFullscreen">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
我也尝试过应用android:Theme.Holo.Light.NoActionBar - 在转换过程中没有成功。 我无法在stackoverflow上找到任何东西(btw是一个很棒的社区,并帮助我解决了许多问题)或互联网上的任何其他地方,并感谢您的帮助。
答案 0 :(得分:3)
如果您将此代码段放入onCreate()方法,您的活动将打开并显示已隐藏的条形码。
getWindow().getDecorView().setSystemUiVisibility(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
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
您还可以为旧版SDK添加条件。我在这个设置中遇到的唯一问题是,一旦我向下滑动以显示条形图,它们就不会再次隐藏......