Как задать цвет statusBar, и при этом оставить его полностью прозрачным при вызове flyout
Столкнулся с некоторыми сложностями, при разработке приложения на MAUI.
Верстая макет аналог пользовательского интерфейса похожего на Google Calendar. Возникла сложность с statusBar.
Мой запрос:
- Сделать так, чтобы при появлении
flyout menu,statusBarбыл полностью прозрачным прозрачным (уже реализовано). - Сделать так, чтобы на основной странице
statusBar, имел цвет как уtoolBar
Я сделал его прозрачным с помощью этого ответа: https://stackoverflow.com/a/73506810/21362268
Объясню, в моем приложении он обязательно должен быть прозрачным, чтобы flyout menu не перекрывалось statusBar.
Если statusbar залить цветом как у toolBar, то на это будет совсем не тот результат, к которому стремлюсь.
Однако, если сделать statusBar полностью прозрачным, то на главной странице он не будет иметь цвет как у toolBar.
Подскажите, как быть в этой ситуации? Чтобы и на главной странице statusBar закрасить цветом toolBar, и чтобы при вызове flyout menu, statusbar не перекрывал своим цветом flyout menu
Ответы (1 шт):
После нескольких дней поиска решения, на самых разнообразных ресурсах и форумах на самых разных языках мира, всё таки нашел решение!
Копать нужно было в сторону задания цвета системному фону приложения.
Внес изменения в файл 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 прозрачный цвет, чтобы они отображали родительский (системный) цвет фона. Результат привел на картинках ниже.

