Android沉浸模式转换
作者:互联网
我有一个使用沉浸式模式进行所有活动的Android应用-因此它是一个全屏的应用.
我有一个BaseActivity类,所有其他活动都从该类扩展.在本活动中,我将调用以下内容启用全屏/沉浸式
HelmiBlank活动:
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上找不到任何东西(顺便说一句,这是一个很棒的社区,并为我解决了许多问题),或者在Internet上的其他任何地方,我都将不胜感激.
解决方法:
如果将此代码段放入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添加条件.我在此设置中遇到的唯一问题是,一旦我向下滑动以显示条,它们便不会再次隐藏…
标签:android-transitions,android-fullscreen,android 来源: https://codeday.me/bug/20191121/2048091.html