이중 화면 레이아웃 라이브러리

중요

이 문서에서 설명하는 기능 및 지침은 공개 미리 보기 상태이며 일반적으로 공급되기 전에 대대적으로 수정될 수 있습니다. Microsoft는 여기에 제공된 정보에 대해 명시적 또는 묵시적 보증을 하지 않습니다.

이러한 라이브러리에는 Android 개발자가 폴더블 디바이스용 애플리케이션을 만드는 데 도움이 되는 보기, 레이아웃, 도우미 함수 등의 세트가 포함되어 있습니다.

구성 요소에 대한 모든 화면 모드를 만들고 처리하는 작업을 수행해야 하는 경우 주요 초점은 놀라운 앱을 만드는 것입니다.

모듈

  • 아래쪽 탐색 - 이중 화면 동작 기능이 있는 사용자 지정 BottomNavigationView를 포함합니다.

    • BottomNavigationView는 BottomNavigationView를 왼쪽 또는 오른쪽 화면으로 이동하는 기능을 제공합니다.
  • FragmentsHandler - 다른 화면 모드에서 조각을 처리하는 코드를 포함합니다.

    • FragmentManagerStateHandler는 작업이 이중 또는 단일 화면으로 전환될 때 화면 모드 관련 조각을 복원하는 기능을 제공합니다.
  • 레이아웃 - 이중 화면 디바이스용 UI를 만드는 데 도움이 되는 레이아웃을 포함합니다.

    • FoldableLayout은 UI를 보관할 SingleScreen 또는 DualScreen 컨테이너를 만듭니다.
    • FoldableFrameLayout은 자식 보기를 확장하거나 왼쪽 또는 오른쪽 화면으로 이동하는 기능을 제공합니다.
  • RecyclerView - 사용자 지정 RecyclerView.ItemDecoration 및 이중 화면 동작이 있는 LayoutManager 클래스를 포함합니다.

    • FoldableItemDecoration은 애플리케이션이 스팬 모드일 때 디바이스 힌지를 가리는 셀을 위한 간격을 추가합니다. 이는 FoldableLayoutManager와 함께 사용해야 합니다.
    • FoldableLayoutManager는 디바이스가 단일 화면 모드일 때 LinearLayoutManager를 제공하고 디바이스가 스팬 모드일 때는 GridLayoutManager를 제공합니다.
    • FoldableStaggeredItemDecoration은 애플리케이션이 스팬 모드일 때 디바이스 힌지를 가리는 셀을 위한 간격을 추가합니다. 이는 FoldableStaggeredLayoutManager와 함께 사용해야 합니다.
    • FoldableStaggeredLayoutManager는 디바이스가 단일 화면 모드일 때 LinearLayoutManager를 제공하고 디바이스가 스팬 모드일 때는 StaggeredGridLayoutManager를 제공합니다.
  • - 이중 화면 동작 기능이 있는 사용자 지정 TabLayout 클래스를 포함합니다.

    • TabLayout 폴더블 기능을 검색하고 왼쪽 또는 오른쪽의 탭을 정렬하는 옵션을 제공할 수 있습니다.
  • 폴딩 가능한 탐색 구성 요소 - Google 탐색 구성 요소에 따라 이 구성 요소에는 이중 화면 탐색 패턴을 구현하는 라이브러리 세트가 포함되어 있습니다.

  • Snackbar - 폴더블 디바이스에 배치하기 위해 Snackbar에 컨테이너로 사용할 수 있는 사용자 지정 FrameLayout입니다.

종속성 선언

  1. 최상위 수준 build.gradle 파일에 mavenCentral() 리포지토리가 있는지 확인합니다.

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  2. 모듈 수준 build.gradle 파일에 필요한 종속성을 추가합니다(현재 버전은 여기에 표시된 것과 다를 수 있음).

    아래쪽 탐색

    implementation "com.microsoft.device.dualscreen:bottomnavigation:1.0.0-beta4"
    

    조각 처리기

    implementation "com.microsoft.device.dualscreen:fragmentshandler:1.0.0-beta5"
    

    레이아웃

    implementation "com.microsoft.device.dualscreen:layouts:1.0.0-beta8"
    

    implementation "com.microsoft.device.dualscreen:tabs:1.0.0-beta4"
    

    RecyclerView

    implementation "com.microsoft.device.dualscreen:recyclerview:1.0.0-beta6"
    

    SnackbarContainer

    implementation "com.microsoft.device.dualscreen:snackbar:1.0.0-alpha2"
    

    폴딩 가능한 탐색 구성 요소

    def nav_version = "1.0.0-alpha3"
    
    // Java language implementation
    implementation "com.microsoft.device.dualscreen:navigation-fragment:$nav_version"
    implementation "com.microsoft.device.dualscreen:navigation-ui:$nav_version" 
    
    // Kotlin
    implementation "com.microsoft.device.dualscreen:navigation-fragment-ktx:$nav_version"
    implementation "com.microsoft.device.dualscreen:navigation-ui-ktx:$nav_version"
    

사용되지 않는 모듈

중요

이러한 레이아웃의 초기 릴리스는 단일 라이브러리 com.microsoft.device:dualscreen-layout에 패키징되었습니다.

이 라이브러리는 사용되지 않습니다. 필요한 컨트롤에 대해 위의 개별 라이브러리를 사용하는 것이 좋습니다.

  • ScreenManager(사용되지 않음) - 이중 화면 디바이스용으로 개발하기 위해 구성 요소에 필요한 핵심 클래스를 포함합니다. 코드에서 직접 활용할 수도 있습니다.

    • ScreenManagerProvider를 사용하여 SurfaceDuoScreenManager의 단일 인스턴스를 가져옵니다.
    • 화면 모드가 변경되었을 때 알림을 받으려면 SurfaceDuoScreenManager를 사용하여 수신기를 등록합니다.
    • ScreenInfoProvider를 사용하여 ScreenInfo의 인스턴스를 가져옵니다.
    • ScreenInfo를 사용하여 화면 모드에 따라 다른 화면 정보를 가져옵니다.

    표시 마스크 API를 사용하는 버전을 선택하려면 gradle 파일에 다음 줄을 추가합니다.

    implementation "com.microsoft.device.dualscreen:screenmanager-displaymask:1.0.0-beta4"
    

    또는 창 관리자 API를 사용하는 버전을 선택하려면 다음 줄을 추가합니다.

    implementation "com.microsoft.device.dualscreen:screenmanager-windowmanager:1.0.0-beta4"