enableEdgeToEdge
안드로이드 프로젝트 생성 시 기본적으로 생성되는 함수 enableEdgeToEdge() 는 과거, 시스템 및 스테이터스 바의 Padding 설정을 개발자가 일일이 설정하는 부분에 대한 해결책으로 나온 함수이다.
과거 Jetpack Compose 에서는 개발자가 SystemBar, NavigationBar, StatusBar 의 Padding 을 조절해주기 위해서는 윈도우에 접근하여 색상을 지정해주어야했는데, 이 설정을 하려면 여러 코드를 작성해야했다. (WindowInset, setDecorFitsSystemWindows 등등..)
하지만 이제는 enableEdgeToEdge 를 Activity onCreate() 부분에 두어 액티비티 시작 시 Composable 이 전체 화면 영역에 포함되게 설정되었고, 이를 통해 영역에 맞는 Composable Background 와 쉽게 통일 시킬 수 있게 되었다.
setDecorFitsSystemWindows
윈도우의 SystemBar, NavigationBar, StatusBar Padding 은 기본적으로 Padding 이 True 이기 때문에 전체 화면 그리기를 적용하기 위해서는 이 함수를 호출하여 Padding 효과를 풀어주고, WindowInsets 을 적용하여 사용자가 Padding 값을 조절해야했다.
WindowCompat.setDecorFitsSystemWindows(window, false)
다만 이 함수는 Compose 에서만 사용 가능한 enableEdgeToEdge 와는 달리 안드로이드 환경 전체에서도 쓰일 수 있는 만큼 범용적으로 쓸 수 있다.
만약 아래와 같이 UI 가 겹치지 않게 설정하기 위해서는 Scaffold 의 innerPadding 을 사용하거나, Modifier 에 SystemBarsPadding 및 StatusBarsPadding 을 적용해주도록 하자
