У меня есть приложение для 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 (который, кстати, является отличным сообществом и помог мне со многими проблемами) или где-либо еще в Интернете, и был бы признателен за вашу помощь.