DialogFragment에서 상태바 완전 투명하게 만들기

pnlkc·2022년 6월 13일
0
post-thumbnail
post-custom-banner

DialogFragment에서 상태바 완전 투명하게 만들기

안드로이드 공부를 하다가 JetPack의 Navigation 기능을 자주 사용하는데 Navigation은 기본적으로 begintransaction의 replace()로 동작하는 것을 알게 되었다.

DialogFragment는 Navigation에서 begintransaction의 add() 기능을 사용할 수 있도록 해준다.

DialogFragment를 사용하다가 해당 프래그먼트의 상태표시줄을 투명하게 만들기 위해 theme에서 windowTranslucentStatus 값을 true로 바꾸었는데 완전한 투명 상태가 아닌 반투명 상태가 되었다.

인터넷에 찾아보니 window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)를 사용하면 된다고 해서 activity.window를 사용해 적용해보았는데 적용이 되지 않았다.

이 문제로 몇시간 동안 싸우면서 결국 해결했는데 문제는 매우 간단한 것이었다;;

바로 activity.window가 아니라 dialog.window를 사용하면 되는 것었다.


결론 : Theme에서 windowTranslucentStatus를 사용해 상태바를 반투명하게 만들고, DialogFragment에서dialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)를 사용해 완전 투명하게 만들어주면 된다.

profile
안드로이드 개발 공부 블로그
post-custom-banner

0개의 댓글