반응형
Toast -> Snack Bar 변경 작업을 진행하면서 액션 버튼이나 하단 탭으로 인해 화면에 따른 Snack Bar 하단에 마진을 줘 특정 버튼을 가리지 않아야 했습니다.
Snack Bar 구현은 해당 포스팅을 참고해주세요 !
바텀의 마진을 주는 방법 코드를 찾아 새로운 프로젝트를 만들어서 테스트 했을땐 작동 했지만 기존 플젝에 추가하니 작동하지 않았습니다.
val snackbarLayout = snackbar.view as Snackbar.SnackbarLayout
snackbarLayout.translationY = -150f
대체 뭐가 원인일까.. 고민하다가
Snack Bar의 Gravity를 Top으로 변경하고 위에서부터 마진을 주는 방법으로 변경해서 테스트 해봤습니다.
var height= CommonUtil.getScreenHeight(this)
layoutParam.gravity = Gravity.TOP
layoutParam.setMargins(0, (height - toastBottomMargin).toInt() , 0, 0)
snackBarView.layoutParams = layoutParam
snack.show()
작동은 하지만 너무 짜친 방법이라 무엇이 원인인지 찾아봐야했다. 그리고 Snack Bar의 텍스트가 2줄이 될 경우나 그 이상을 완벽하게 커버할 수 없기 때문에 찾아야 했습니다. ( 상단 마진을 조절하는 방식이기 때문에 )
해결
정답은 테마였습니다.
( 라이브러리들의 버전들도 다 비교 체크 해보고 target sdk 버전도 변경해봤습니다. )
// before
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
// after
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
되게 간단한 문제인데 안되시는 분들의 시간을 절약하길 바랍니다.
화이팅
반응형
'안드로이드 > 오류해결' 카테고리의 다른 글
[AOS] Webview에 html 코드 로드 하기 ( with. loadData 사용시 안될때 ) (0) | 2022.11.18 |
---|---|
[AOS] Databinding 사용시 x is public, should be declared in a file named 에러 (0) | 2022.09.22 |
[AOS] Targeting S+ ( export 선언 ) 에러 대응 (1) | 2022.09.08 |
[AOS] - Fragment에서 layoutInflater 사용시 에러 (0) | 2022.05.20 |
[AOS] Android Studio 'import Module' Error (0) | 2022.05.16 |