본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[Android] 다크모드 비활성화 하는 방법

by MinChan-Youn 2023. 8. 17.

안녕하세요~ 챠니입니다! :)

오늘은 다크모드 비활성화 하는 방법에 대해서 알아보도록 하겠습니다!

 

    다크모드적용이 어때서?

    개발하는 앱마다 다크모드를 적용할 수도 있고, 안할 수도 있습니다!

    하지만 저는 다크모드를 적용하기에는 또 다크모드의 색상등을 지정해야하기 때문에 개발공수가 많이 생겨 다크모드를 적용하지않도록 하는 방법에 대해서 알아보았습니다.

     

     

     

    현재 상황은 다음과 같습니다.

    Dialog 상단 다크모드 적용된 상태

     

    위의 그림처럼 Dialog의 끝부분이 일반모드에서는 흰색, 다크모드에서는 검정색으로 나오고있는 이슈가 있습니다.

    하나하나 배경색을 흰색으로 지정해주기에는 너무 많은 코드를 추가 및 수정해야하기 때문에...

    설정자체에서 다크모드를 적용하지 않도록 합니다 :)

     

     

    다크모드 미적용 방법

    현재 제가 개발하고 있는 소스코드에서 themes를 확인해보도록 합니다.

     

    AS-IS

    themes.xml
    themes(night).xml

    다음처럼 "Theme.MaterialComponents.DayNight.DarkActionBar"로 설정이 되어있는데요

    실제로 저 부모를 참고하자면 일반모드와 다크모드에서의 스타일이 정의가 되어있습니다.

     

    다음과 같이 해당 스타일을 접근하려고 하면 일반모드, 다크모드 두가지가 정의가 되어있는것을 알 수 있습니다.

    Theme.MaterialComponents.DayNight.DarkActionBar

    그렇기 때문에 일반모드에서는 일반모드의 스타일을, 다크모드에서는 다크모드 스타일이 적용되는것을 알 수 있습니다.

     

    그렇다면 어떻게 해야하는가?

    -> 정답: 다크모드가 없는 일반모드만 있는 스타일을 적용해주면 되겠습니다.

     

     

     

    TO-BE

    themes.xml
    themes(night).xml

    다음처럼 "Theme.MaterialComponents.Light.DarkActionBar"로 설정을 해줍니다.

    실제로 다음 스타일은 일반모드만 있는 것을 확인 할 수 있습니다.

    Theme.MaterialComponents.Light.DarkActionBar

     

     

     

    여기까지 적용이 끝났나면 다시 빌드를 통해 다크모드가 적용이 해제되었는지 확인합니다.

    다크모드 제거된 상태

    네 정상적으로 일반모드 스타일만 적용되었네요 :)

    끝!

     

     

     

     

    질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

    응원의 댓글은 저에게 큰 힘이 된답니다! :)

    즐거운 하루되세요!

     

    깃허브 보러 놀러오세요 👇 (맞팔환영)

    https://github.com/younminchan

     

    younminchan - Overview

    안드로이드 2년차 개발자 •⚽️/🎤/🥁/🖥/🏃‍♂️/🚴‍♂️/🤟 TechBlog⬇️ minchanyoun.tistory.com - younminchan

    github.com