안드로이드 스튜디오 이구아나 업데이트이후 액티비티 생성시 바뀐 포멧

김성환·2024년 3월 21일

안드로이드 스튜디오 이구아나 업데이트이후 액티비티 생성시 못보던 함수들이 생겼습니다.
이전

이후
오늘은 이함수들에 대해 알아보도록 합시다


enableEdgeToEdge


위 함수의 description
EdgeToEdge 라는 코틀린파일에 추가된ComponentActivity의 확장함수로 SystemBarStyle의 자료형을 가지는 statusBarStyle과 navigationBarStyle을 받습니다.

위 함수의 설명을 해석해보면

이 ComponentActivity에 대해 에지 투 에지 디스플레이를 활성화합니다.
기본 스타일로 설정하려면 액티비티의 onCreate 함수에서 다음 함수를 호출합니다.
기본 스타일은 시스템에 의해 대비가 적용될 수 있을 때(API 29 이상) 투명한 배경으로 시스템 막대를 구성합니다. 이전 플랫폼(3버튼/2버튼 탐색 모드만 있음)에서는 시스템 막대와의 대비를 보장하기 위해 동등한 스크림이 적용됩니다.
자세한 사용자 지정 옵션은 시스템 바 스타일을 참조하십시오.
매개 변수:
statusBarStyle - 상태 표시줄의 SystemBarStyle입니다.
NavigationBarStyle - NavigationBar에 대한 SystemBarStyle

결과적으로는 ComponentActivity에 대해 에지 투 에지 디스플레이를 활성화한다고 합니다. 이방식은 기존에 테마에서 상태표시줄이나 네비게이션바의 색상을 따로 지정해줘야했지만 enableEdgeToEdge함수를 호출하면 지정하지 않고도 해당바들이 투명하게만들거나 스타일을 지정할수 있습니다.

이런식으로 표현할수도 있습니다. 단 안드로이드의 sdk 버전이 29보다 낮다면

이런식으로 네비게이션바가 보일수 있습니다.

setOnApplyWindowInsetsListener

OnApplyWindowInsetListener를 설정하여 이 보기에 창 삽입을 적용하기 위한 정책을 이어받으십시오. 이는 API 21 이상을 사용하는 장치에서만 적용됩니다.

위에서말한 함수 enableEdgeToEdge가 상태바나 네비게이션 바의 스타일을 지정하는거라면 view의 inset을 지정할수있습니다. 여기서 말하는 inset은 화면의 가장자리에 있는 시스템 바의 크기를 나타내는 측정값입니다. OnApplyWindowInsetsListener에서 inset값을 받아와서 패딩이나 마진값을 지정할수있습니다.


reference
https://developer.android.com/develop/ui/views/layout/edge-to-edge?hl=ko

0개의 댓글