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)를 사용해 완전 투명하게 만들어주면 된다.