[Android] 폴더블 기기 UI 대응하기
일반적인 스마트 폰에 맞춰서 개발을 하다가 갤럭시 폴드를 접하고 나서 문제가 생겼다. 대부분의 위젯에 width와 height을 고정 dp 값으로 사용했는데 갤럭시 폴드가 접혀있을 때는 위젯이 잘리고,
ogyong.tistory.com
이전에 폴더블 기기의 UI를 어떻게 대응했는지 글을 작성했었는데, 폴더블 기기를 접거나 폈을 때 어떻게 처리했는지에 대해서도 정리하려고 한다.
기기가 회전하거나 사이즈가 변경(접기, 펴기 등)되면 화면이 재구성되어 Activity가 onCreate부터 다시 시작하게 된다.
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
화면이 재구성 되는 것을 막기위해 Manifest의 Activity를 등록하는 부분에서 위와 같이 설정을 하면 Activity가 해당 설정에 대해 다시 시작하지 않게 된다. 하지만 onCreate를 실행하지 않기 때문에 폴더블 기기에서 펼치거나 접었을 때 UI가 변하지 않는다.
이때 onConfigurationChanged을 사용한다. onConfigurationChanged는 Manifest에서 configChanges로 속성을 부여했을 때 해당 동작이 감지되면(장치의 구성이 변경될 때) 호출된다.
/**
* 화면 재구성 시 ui 적용
*/
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
getDeviceType()
setBtnSize()
}
이전에 작성했던 코드에 해당 코드를 넣으면 기기를 접거나 폈을 때도 UI가 정상적으로 나온다.
'작업 일지' 카테고리의 다른 글
[Android] Mqtt, subjectAltNames에 대한 고민 (0) | 2022.12.21 |
---|---|
[Android] ExifInterface와 Matrix로 이미지 회전 시키기 (2) | 2022.11.29 |
[Android] 기기 화면을 가로, 세로로 회전 시키기 (0) | 2022.11.24 |
[Android] Screen Size로 폰과 태플릿 구분하기 (0) | 2022.11.23 |
[Android] 폴더블 기기 UI 대응하기 (0) | 2022.11.22 |
댓글