Dual-Screen-Layoutbibliotheken

Wichtig

In diesem Artikel werden Funktionen und Anleitungen beschrieben, die sich in der öffentlichen Vorschau befinden und vor der allgemeinen Verfügbarkeit noch wesentlich geändert werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.

Diese Bibliotheken enthalten eine Reihe von Ansichten, Layouts, Hilfsfunktionen und mehr, um Android-Entwickler bei der Erstellung von Anwendungen für faltbare Geräte zu unterstützen.

Wenn du die Verantwortung für die Erstellung und Verarbeitung aller Bildschirmmodi unseren Komponenten überlässt, kannst du dich ganz auf das Erstellen deiner außergewöhnlichen App konzentrieren.

Module

  • Bottom Navigation: enthält eine benutzerdefinierte BottomNavigationView mit Dual-Screen-Verhalten.

    • BottomNavigationView bietet die Möglichkeit, die BottomNavigationView auf den linken oder rechten Bildschirm zu verschieben.
  • FragmentsHandler: enthält Code zur Behandlung von Fragmenten in verschiedenen Bildschirmmodi.

    • FragmentManagerStateHandler bietet beim Übergang einer Aktivität in den Doppel- oder Einzelbildschirmmodus die Möglichkeit, für den Bildschirmmodus spezifische Fragmente wiederherzustellen.
  • Layouts: enthält die Layouts, die Sie beim Erstellen von Benutzeroberflächen für Geräte mit Doppelbildschirm unterstützen.

    • Das FoldableLayout erstellt SingleScreen- oder DualScreen-Container, die deine Benutzeroberfläche aufnehmen.
    • FoldableFrameLayout bietet die Möglichkeit, untergeordnete Ansichten auf beiden Bildschirmen anzuzeigen oder sie auf den linken oder rechten Bildschirm zu verschieben.
  • RecyclerView: enthält eine benutzerdefinierte RecyclerView.ItemDecoration und eine LayoutManager-Klasse mit Dual-Screen-Verhalten.

    • FoldableItemDecoration fügt Abstand für die Zellen hinzu, um dem Gerätescharnier Rechnung zu tragen, wenn sich die Anwendung im bildschirmübergreifenden Modus befindet. Dies sollte zusammen mit dem FoldableLayoutManager verwendet werden.
    • FoldableLayoutManager stellt einen LinearLayoutManager zur Verfügung, wenn das Gerät im Einzelbildschirmmodus ausgeführt wird, und einen GridLayoutManager, wenn sich das Gerät im bildschirmübergreifenden Modus befindet.
    • FoldableStaggeredItemDecoration fügt Abstand für die Zellen hinzu, um dem Gerätescharnier Rechnung zu tragen, wenn sich die Anwendung im bildschirmübergreifenden Modus befindet. Dies sollte zusammen mit dem FoldableStaggeredLayoutManager verwendet werden.
    • FoldableStaggeredLayoutManager stellt einen LinearLayoutManager zur Verfügung, wenn das Gerät im Einzelbildschirmmodus ausgeführt wird, und einen StaggeredGridLayoutManager, wenn sich das Gerät im bildschirmübergreifenden Modus befindet.
  • Tabs: enthält eine benutzerdefinierte Klasse TabLayout mit Doppelbildschirmverhalten.

    • TabLayout kann eine Faltungsfunktion erkennen und bietet die Option, seine Registerkarten links oder rechts davon anzuordnen.
  • Foldable Navigation-Komponente: Diese Komponente basiert auf der Navigationskomponente von Google und enthält eine Reihe von Bibliotheken, die das Dual Screen-Navigationsmuster implementieren.

  • Snackbar: Ein benutzerdefiniertes FrameLayout, das als Container für die Snackbar verwendet werden kann, um sie auf faltbaren Geräten zu positionieren.

Deklarieren von Abhängigkeiten

  1. Achten Sie darauf, das mavenCentral() -Repository in Ihre build.gradle-Datei der obersten Ebene aufzunehmen:

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  2. Fügen Sie Ihrer build.gradle-Datei auf Modulebene die benötigten Abhängigkeiten hinzu (die aktuelle Version weicht möglicherweise von der hier gezeigten ab):

    Bottom Navigation

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

    Fragmente-Handler

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

    Layouts

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

    Registerkarten

    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"
    

    Foldable Navigation-Komponente

    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"
    

Veraltete Module

Wichtig

Unsere erste Veröffentlichung dieser Layouts war in einer einzelnen Bibliothek com.microsoft.device:dualscreen-layout verpackt.

Diese Bibliothek ist veraltet. Wir empfehlen, für die benötigten Steuerelemente die oben aufgeführten Einzelbibliotheken zu verwenden.

  • ScreenManager (veraltet): enthält die Kernklassen, die von unseren Komponenten zur Entwicklung für Dual-Screen-Geräte benötigt werden. Diese können auch direkt in deinem Code verwendet werden.

    • Verwenden Sie ScreenManagerProvider, um die einzelne Instanz von SurfaceDuoScreenManager abzurufen.
    • Verwenden Sie SurfaceDuoScreenManager, um Listener zu registrieren, damit Sie benachrichtigt werden, wenn der Bildschirmmodus geändert wurde.
    • Verwenden Sie ScreenInfoProvider, um eine Instanz von ScreenInfo abzurufen.
    • Verwende ScreenInfo, um in Abhängigkeit vom Bildschirmmodus unterschiedliche Bildschirminformationen abzurufen.

    Wenn Sie die Version auswählen möchten, die die Anzeigemasken-API verwendet, fügen Sie Ihrer gradle-Datei die folgenden Zeilen hinzu.

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

    Wenn Sie alternativ die Version wählen möchten, die die Window Manager-API verwendet, fügen Sie die folgende Zeile hinzu.

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