하루에 0.01%라도 성장하자

Develop/Android

Kotlin 을 이용한 동적 setBackgroundColor

뚠님 2022. 7. 6. 16:10
반응형

이번에 별로 어렵지도 않은 걸로 혼자 삽질한 케이스가 발생해서 기록 차원에서 남겨두려고 한다.

( 이러지 말자 ㅠㅠ )

 

기본적인 앱 구조는 healder를 공통으로 만들어 놓고 이 header를 각 레이아웃에 include 해서 사용하려고 한다.

 

이때 include하는 activity 별로 header의 backgroundColor 값을 변경해줘야 하는 상황이었다.

( 어렵지 않은데 ?)

 

평소처럼 진행하였다.

 

대충 바인딩 하는 코드
....

binding.headerLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.white))

 

그런데 변경이 안되는것이다!!

 

아무리 해도 변경이 안돼...

 

바인딩이 잘못되었나 해서 findViewById로도 별도로 ViewBinding을 진행하였는데도 안되고...

별 짓을 다해봤는데 생각보다 답은 간단했다.

 

xml 코드...


android:id="@+id/headerLayout"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:paddingStart="26dp"
android:background="@color/black" // 이게 문제
android:paddingEnd="26dp">

 

바로 include 한 헤더의 background값을 xml에서 미리 선언을 하고 그걸 kotlin 에서 변경하려고 했기 때문이다.

나름대로 변경을 별도로 해주지 않았을 때 디폴트 값으로 가지고 있으려고 black으로 처리하였는데, 변경이 되지 않아서 

혹시 이건가 ? 하고 해당 구문을 지워주니 바로 잘 됨...

 

다른 분들은 이런 허무한 이슈에 고생하지 않기를 바란다.. ㅠ

반응형