Я написал следующий код для ввода действия в режим погружения.
decorView = Window.DecorView;
var uiOptions = (int)decorView.SystemUiVisibility;
var newUiOptions = (int)uiOptions;
newUiOptions |= (int)SystemUiFlags.LowProfile;
newUiOptions |= (int)SystemUiFlags.Fullscreen;
newUiOptions |= (int)SystemUiFlags.HideNavigation;
newUiOptions |= (int)SystemUiFlags.Immersive;
newUiOptions |= (int)SystemUiFlags.ImmersiveSticky;
decorView.SystemUiVisibility = (StatusBarVisibility)newUiOptions;
Это отлично работает, и я получаю идеальный режим погружения.
Теперь проблема в том, что когда я использую следующий код для выхода из иммерсивного режима, он выходит из иммерсивного режима, но превращает мою строку состояния и панель навигации в белый цвет.
ДО ИМЕРСИВНОГО РЕЖИМА:
Строка состояния и навигация светятся
ПОСЛЕ ВЫХОДА ИЗ ИМЕРСИВНОГО РЕЖИМА:
Для выхода из режима погружения я использую следующий код
decorView = Window.DecorView;
decorView.SystemUiVisibility = StatusBarVisibility.Visible;
Я пробовал несколько других вещей, таких как следующее
Как полностью выйти из полноэкранного режима с погружением?
https://developer.android.com/training/system-ui/immersive
Они работают, но все с белой строкой состояния и панелью навигации.
Кроме того, да, я использую LightStatusBar
и LightNavigationBar
, но даже настройки, которые при выходе из иммерсивного режима не работают, такие как
decorView = Window.DecorView;
var uiOptions = (int)decorView.SystemUiVisibility;
var newUiOptions = (int)uiOptions;
newUiOptions |= (int)SystemUiFlags.LightNavigationBar;
newUiOptions |= (int)SystemUiFlags.LightStatusBar;
decorView.SystemUiVisibility = (StatusBarVisibility)newUiOptions;
Что бы я ни делал, я просто не могу вернуть строку состояния и панель навигации в нормальное состояние после выхода из режима погружения
Есть идеи по этому поводу?
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:statusBarColor">#ffffff</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:navigationBarColor">@color/colorPrimary</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>
<style name="CustomActionBarStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:titleTextStyle">@style/NoTitleText</item>
<item name="android:subtitleTextStyle">@style/NoTitleText</item>
</style>
<style name="NoTitleText">
<item name="android:textSize">0sp</item>
<item name="android:textColor">#00000000</item>
</style>
Приветствия