[Android] 폴더블 기기를 접거나 폈을 때 UI 처리

2022. 11. 24. 12:46·작업 일지
반응형

 

 

[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
'작업 일지' 카테고리의 다른 글
  • [Android] Mqtt, subjectAltNames에 대한 고민
  • [Android] ExifInterface와 Matrix로 이미지 회전 시키기
  • [Android] 기기 화면을 가로, 세로로 회전 시키기
  • [Android] Screen Size로 폰과 태플릿 구분하기
O_Gyong
O_Gyong
안드로이드 기술 정리
  • O_Gyong
    O_Gyong's TECH
    O_Gyong
    • 분류 전체보기 (81)
      • Android (58)
        • ADB (4)
        • Architecture (1)
        • Data (5)
        • Firebase (2)
        • Network & Connecting (4)
        • Security & Privacy (3)
        • UI (24)
        • 기타 (3)
        • 이슈 처리 (14)
      • Android Studio (5)
      • Git (3)
      • 작업 일지 (13)
  • 최근 글

  • 인기 글

  • 태그

    Pagination
    SharedPreferences
    webview
    Room
    CameraX
    paging
    hilt
    Andoird
    MQTT
    TabLayout
    loading
    issue
    GIT
    firebase
    compose
    recyclerview
    ADB
    Kotlin
    해상도
    kizitonwose
    Android Studio
    Bluetooth
    in-app update
    BLE
    Paging3
    Android
    CalendarView
    Navigation
    github
    flow
  • 링크

    • GitHub
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • hELLO· Designed By정상우.v4.10.4
O_Gyong
[Android] 폴더블 기기를 접거나 폈을 때 UI 처리
상단으로

티스토리툴바