Как задать цвет statusBar, и при этом оставить его полностью прозрачным при вызове flyout

Рейтинг: 0Ответов: 1Опубликовано: 12.03.2023

Столкнулся с некоторыми сложностями, при разработке приложения на MAUI. Верстая макет аналог пользовательского интерфейса похожего на Google Calendar. Возникла сложность с statusBar.

Мой запрос:

  1. Сделать так, чтобы при появлении flyout menu, statusBar был полностью прозрачным прозрачным (уже реализовано).
  2. Сделать так, чтобы на основной странице statusBar, имел цвет как у toolBar

Я сделал его прозрачным с помощью этого ответа: https://stackoverflow.com/a/73506810/21362268 Объясню, в моем приложении он обязательно должен быть прозрачным, чтобы flyout menu не перекрывалось statusBar.введите сюда описание изображения Если statusbar залить цветом как у toolBar, то на это будет совсем не тот результат, к которому стремлюсь. Реализация в таком виде недопустима Однако, если сделать statusBar полностью прозрачным, то на главной странице он не будет иметь цвет как у toolBar.Текущий вид главной страницы

Подскажите, как быть в этой ситуации? Чтобы и на главной странице statusBar закрасить цветом toolBar, и чтобы при вызове flyout menu, statusbar не перекрывал своим цветом flyout menu

Ответы

▲ 0

После нескольких дней поиска решения, на самых разнообразных ресурсах и форумах на самых разных языках мира, всё таки нашел решение!

Копать нужно было в сторону задания цвета системному фону приложения.

Внес изменения в файл MainActivity (для платформы android): Переписал/создал метод OnCreate:

protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        ColorDrawable cd = new ColorDrawable(Android.Graphics.Color.Argb(255, 49, 49, 54));
        Window.SetDecorFitsSystemWindows(false);
        Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
        Window.SetNavigationBarColor(Android.Graphics.Color.Transparent);
        Window.SetBackgroundDrawable(cd);     
    }

Установил navigationBar и statusBar прозрачный цвет, чтобы они отображали родительский (системный) цвет фона. Результат привел на картинках ниже.

введите сюда описание изображения

введите сюда описание изображения