我有一个使用沉浸式模式的安卓应用程序,所有活动都采用全屏模式。
我有一个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);
}
}
在活动中,它的表现非常出色,但问题是:当打开一个新的活动(通过意图)时,操作栏/标题栏会短暂显示然后再次隐藏 - 这似乎有点卡顿/有bug。
应用程序还有一个主题: 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(顺便提一下,这是一个很棒的社区,帮助了我很多问题)或者其他任何地方都找不到相关信息,希望得到您的帮助。