728x90
반응형
오늘은 바텀시트에 이미 프로젝트에 적용되어있던 Material3 테마를 적용해본 내용을 적어본다.
먼저, 내 상황은 이렇다.
- 프로젝트에 Material3 테마로 색상이 정의되어 있었다.
- 바텀시트는 커스터마이징을 위해 별도 클래스로 작성되어 있다. (BottomSheetDialogFragment를 상속받고 있다.)
- 바텀시트의 버튼은 Material3 테마를 사용하지 않고 AppCompat 테마를 사용한다.
또, 프로젝트 테마의 parent는 Theme.Material3.Light.NoActionBar이다.(라이트 모드 기준)
여기서 문제가 되는 지점은 바텀시트의 parent를 누구로 지정해야 하는가 이다.
BottomSheet라 검색하면 굉장히 많은 테마가 검색되는데 답을 먼저 말하면
Theme.Material3.DayNight.BottomSheetDialog를 적용했다.
여기서 xml을 첨부해보도록 하겠다.
https://gist.github.com/BonusTrack02/542930e33f5ccf603302e00089e2cfe1
buttonStyle을 말했던 대로 AppCompat 계열로 적용했고, 버튼에 보여질 색상을 정의했다.
AppTheme안에 BottomSheetDialog 테마를 추가해두었는데 나에겐 필요가 없는 부분이었다.
(이유는 조금 뒤에 설명해보겠다.)
이제 이렇게 구성한 xml의 테마를 적용해야 할 것이다.
나는 이를 별도 클래스로 만들어둔 BottomSheet에 적용하기 위해 onCreate에서 setStyle 메소드를 사용해주었다.
https://gist.github.com/BonusTrack02/5cfbedaa72bc6b475f5b98a400a904ce
내 상황이 이해가 되지 않는 부분이 있다면 이전 BottomSheet에 대한 글을 같이 보게된다면 더욱 적용하기 쉬울 것이다.
728x90
반응형
'Android' 카테고리의 다른 글
How to Hide keyboard from fragments (0) | 2023.10.08 |
---|---|
Codelab으로 Room 알아보기 - 3. Create the DAO (0) | 2023.09.23 |
Android BottomNavigationView Uncheck All Items (0) | 2023.09.13 |
Android BottomSheetDialogFragment Scrim 영역 터치 동작 (0) | 2023.09.11 |
Android BottomSheetDialogFragment Height 조절하기 (0) | 2023.08.28 |