본문 바로가기
프로그래밍/Android

[Android] 기본 버튼 색상이 이상할때..

by Youngs_ 2022. 9. 23.

 

필자는 아래와 같이 Theme.AppCompat.Light를 상속하였다.

themes.xml

<style name="Theme.이름"  parent="Theme.AppCompat.Light">

안드로이드 버튼 background drawable 적용 안됨
안드로이드에서 버튼을 커스터마이징하기 위해 열심히 drawable로 shape를 만들었는데
background에 적용시키면 디폴트 색인 보라색이 뜨는 경우가 있다.
 
drawable/buttom_background.xml 파일
 
Whyrano . . .
Button 을
android.widget.Button 또는 androidx.appcompat.widget.AppCompatButton 으로 바꿔주면 바로 해결된다.
 
하지만 왜 이런 건지, 그냥 Button과는 무슨 차이점이 있는지 궁금해서 이유를 찾아보았다.
 
 
안드로이드 버튼 background drawable 적용 안 되는 이유
res/values/themes/themes.xml 로 가보면 이유를 알 수 있다.
 

바로 이 부분 때문이다.
 
MaterialComponents 디자인을 상속받고 있기 때문이다.
MaterialComponents 디자인은 아예 Background를 자체적으로 갖고 있어서 변경되지 않는다고 한다.
따라서 아예 이 부분을
parent='Theme.AppCompat.Light' 로 바꿔주기만 해도 문제가 해결되긴 한다.
하지만 해당 style을 적용하고 있는 Activity나 프로젝트 전체의 theme이 변경될 수 있으니 주의바람!

 

참고
https://stackoverflow.com/questions/52743190/when-using-theme-materialcomponents-light-noactionbar-style-setting-button-back/52751122
https://velmurugan-murugesan.medium.com/material-button-in-android-e4391a243b17


출처: https://hyunjungchoi.tistory.com/116 [행뽁🐥:티스토리]

댓글