Pustaka tata letak layar ganda

Penting

Artikel ini menjelaskan fungsionalitas dan panduan yang ada dalam pratinjau publik dan dapat dimodifikasi secara substansial sebelum tersedia secara umum. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.

Pustaka ini berisi serangkaian tampilan, tata letak, fungsi pembantu, dan lainnya untuk membantu pengembang Android membuat aplikasi untuk perangkat yang dapat dilipat.

Ketika Anda meninggalkan tanggung jawab untuk membuat dan menangani semua mode layar ke komponen kami, fokus utama Anda adalah membuat aplikasi luar biasa Anda.

Modul

  • Navigasi bawah - Berisi BottomNavigationView kustom dengan perilaku layar ganda.

    • BottomNavigationView menyediakan kemampuan untuk memindahkan BottomNavigationView ke layar kiri atau kanan.
  • FragmentsHandler - Berisi kode untuk menangani Fragmen dalam mode layar yang berbeda.

    • FragmentManagerStateHandler menyediakan kemampuan untuk memulihkan fragmen khusus mode layar saat aktivitas beralih ke layar ganda atau tunggal.
  • Tata Letak - Berisi tata letak yang membantu Anda membuat UI untuk perangkat layar ganda.

    • FoldableLayout akan membuat SingleScreen kontainer atau DualScreen untuk menahan UI Anda.
    • FoldableFrameLayout menyediakan kemampuan untuk menjangkau tampilan anak atau memindahkannya ke layar kiri atau kanan.
  • RecyclerView - Berisi RecyclerView.ItemDecoration kustom dan kelas LayoutManager dengan perilaku layar ganda.

    • FoldableItemDecoration menambahkan penspasian untuk sel untuk menutupi engsel perangkat saat aplikasi dalam mode membentang. Ini harus digunakan bersama dengan FoldableLayoutManager.
    • FoldableLayoutManagerLinearLayoutManager menyediakan saat perangkat berada dalam mode layar tunggal dan GridLayoutManager ketika perangkat dalam mode spanned.
    • FoldableStaggeredItemDecoration menambahkan penspasian untuk sel untuk menutupi engsel perangkat saat aplikasi dalam mode membentang. Ini harus digunakan bersama dengan FoldableStaggeredLayoutManager.
    • FoldableStaggeredLayoutManagerLinearLayoutManager menyediakan saat perangkat berada dalam mode layar tunggal dan StaggeredGridLayoutManager ketika perangkat dalam mode spanned.
  • Tab - Berisi kelas TabLayout kustom dengan perilaku layar ganda.

    • TabLayout dapat mendeteksi fitur yang dapat dilipat dan menyediakan opsi untuk mengatur tabnya di sebelah kiri atau di sebelah kanannya.
  • Komponen Navigasi yang Dapat Dilipat - Berdasarkan Komponen Navigasi Google, komponen ini berisi sekumpulan pustaka yang mengimplementasikan pola navigasi layar ganda.

  • Snackbar - Kustom FrameLayout yang dapat digunakan sebagai kontainer untuk Snackbar memosisikannya pada perangkat yang dapat dilipat.

Mendeklarasikan dependensi

  1. Pastikan Anda memiliki repositori mavenCentral() di file build.gradle tingkat atas Anda:

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  2. Tambahkan dependensi yang Anda butuhkan ke file build.gradle tingkat modul (versi saat ini mungkin berbeda dari yang ditunjukkan di sini):

    Navigasi bawah

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

    Penangan fragmen

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

    Tata letak

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

    Tab

    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"
    

    Komponen Navigasi yang Dapat Dilipat

    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"
    

Modul yang tidak digunakan lagi

Penting

Rilis awal tata letak ini kami dimas dalam satu pustaka com.microsoft.device:dualscreen-layout.

Pustaka ini tidak digunakan lagi. Sebaiknya gunakan pustaka individual di atas untuk kontrol yang Anda butuhkan.

  • ScreenManager (Tidak digunakan lagi) - Berisi kelas inti yang diperlukan oleh komponen kami untuk dikembangkan untuk perangkat layar ganda. Anda juga dapat menggunakan ini langsung dalam kode Anda.

    • Gunakan ScreenManagerProvider untuk mendapatkan instans tunggal .SurfaceDuoScreenManager
    • Gunakan SurfaceDuoScreenManageruntuk mendaftarkan pendengar agar dapat diberi tahu ketika mode layar diubah.
    • Gunakan ScreenInfoProvider untuk mendapatkan instans ScreenInfo.
    • Gunakan ScreenInfo untuk mendapatkan informasi layar yang berbeda tergantung pada mode layar.

    Jika Anda ingin memilih versi yang menggunakan Display Mask API, tambahkan baris berikut ke file gradle Anda.

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

    Atau, jika Anda ingin memilih versi yang menggunakan Window Manager API, tambahkan baris berikut.

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