profile image

L o a d i n g . . .

반응형

Android darkmode disable code

 

안드로이드에 다크모드가 추가되면서 프로젝트내에 나이트 테마가 추가되었다.

 

언제부터인지 모르겠지만, 아무생각 없이 개발을 하다 보면 다크모드인 기기에서 큰 이슈가 발생한다.

예를 들어 글씨를 검정색으로 했는데 다크모드에서는 글씨가 전혀 보이지 않는다거나.. 등등

 

이럴 때 프로젝트 상 굳이 다크모드를 적용하고 싶지 않은 경우 코드의 테마를 바꾸어 주면 된다.

 

<style name="Theme.sample" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/black</item>
        <item name="colorPrimaryVariant">@color/black</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">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>

해당 테마는 원본 테마이며 이 테마의 parent만 바꾸어 주면 된다

 

<style name="Theme.sample" parent="Theme.MaterialComponents.Light.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/black</item>
        <item name="colorPrimaryVariant">@color/black</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">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>

parent를 Light로 변경해주면 다크모드가 적용된 기기에서도 앱의 테마는 다크모드를 따라가지 않는다

반응형
복사했습니다!