StatusBar를 흰색으로 바꿨을 때 StatusBar 내에 icon들이 안보이는 이슈 해결

이지훈·2021년 11월 15일
0

[Android]

목록 보기
2/8

기본적으로 안스의 Primary Color는 Purple500 이라는 컬러이다. Material Design Primary Color 인데 굉장히 마음에 들지 않는다

그래서 보통 statusBar의 컬러를 black 이나 white로 변경하는데 그동안 white로 해주면 시간, 와이파이 표시, 배터리등의 아이콘도 white라 다 안보이는 이슈가 발생해 black으로 주로 설정해왔던 것 같다.

근데 보통 앱들은 statusBar color 가 white여도 모든 아이콘들이 보이지 않는가
그럼 방법이 있겠지 왜 검색을 안해봤던걸까.

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.Heardot" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/black</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">@color/white</item>
        <!-- Customize your theme here. -->
    </style>

    <style name="Theme.Heardot.NoActionBar" parent="Theme.Heardot">
        <item name="android:statusBarColor">@android:color/white</item>
        <item name="android:windowLightStatusBar">true</item>
    </style>
</resources>

다음과 같이

<item name="android:windowLightStatusBar">true</item>

windowLightStatusBar 옵션을 true로 주면 된다.

다음과 같이 theme 을 상속해서 자식 테마에서 옵션을 override해줬을 경우

Manifest의 설정에서 android:theme 역시 자식 theme의 name으로 설정해줘야 앱에 적용된다.

android:theme="@style/Theme.Heardot.NoActionBar"

불편하면 우선 검색을 해서 해결책이 있는지 알아보도록 하자.

Emulator 에서는 여전히 white color라 안보일 수도 있지만 실기기를 연결해서 앱을 실행하면 정상적으로 status bar의 아이콘들이 보일 것이다!

profile
실력은 고통의 총합이다. Android Developer

0개의 댓글