Правильный способ установить цвет StatusBar на Android - PullRequest
0 голосов
/ 15 апреля 2020

Я сделал пустое стартовое приложение с темой по умолчанию (Ioni c 5).

Для Android вот так это выглядит. Это выглядит довольно странно, поскольку я ожидал, что в качестве цвета строки состояния будет использоваться более темная версия основного цвета.

enter image description here

Строка состояния черная. Как правильно установить цвет строки состояния на другой цвет?

Я пробовал следующие вещи:

  1. StatusBar this.statusBar.backgroundColorByHexString('#ffffff');
  2. Цвет StatusBar в настройках <preference name="StatusBarBackgroundColor" value="#457492" />

Но ничего из этого не работает. Сейчас я прибегаю к этому через MainActivity проекта Android.

getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.status_bar_color));

app.component.ts

export class AppComponent {
  navigate: any;
  constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar
  ) {
    this.initializeApp();
  }

  initializeApp() {
    this.platform.ready().then(() => {
      // this.statusBar.styleDefault();
      this.splashScreen.hide();
      this.statusBar.backgroundColorByHexString('#ff371d');
      this.sideMenu();
    });
  }
}

Ответы [ 3 ]

0 голосов
/ 15 апреля 2020

Вы меняете цвет после platform.ready()?

this.platform.ready().then(() => {
   this.statusBar.backgroundColorByHexString('#A9C23F');
}

Я ничего не менял в конфиге, и это работает для меня

0 голосов
/ 15 апреля 2020

Добавьте эту строку в стиле. xml:

item name="colorPrimaryDark">@color/colorPrimaryDark</item>

или

item name="colorPrimaryDark">#0000</item>

***Click here to open image***

0 голосов
/ 15 апреля 2020

Вы также можете установить цвет строки состояния в родительской теме.

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
       ...
        <item name="android:statusBarColor">#ffffff</item>
       ...

    </style>
...