Bibliotecas de diseño de doble pantalla

Importante

En este artículo se describen la funcionalidad y las instrucciones que se encuentran en versión preliminar pública, por lo que pueden modificarse de forma sustancial antes de que estén disponibles con carácter general. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información que se ofrece aquí.

Estas bibliotecas contienen un conjunto de vistas, diseños, funciones auxiliares, etc. para ayudar a los desarrolladores de Android a crear aplicaciones para dispositivos plegables.

Si deja la responsabilidad de crear y controlar todos los modos de pantalla a nuestros componentes, se podrá concentrar en la creación de una aplicación impresionante.

Módulos

  • Navegación inferior: contiene una clase BottomNavigationView personalizada con un comportamiento de doble pantalla.

    • BottomNavigationView proporciona la capacidad de mover la clase BottomNavigationView en la pantalla izquierda o derecha.
  • FragmentsHandler: contiene código para controlar fragmentos en modos de pantalla diferentes.

    • FragmentManagerStateHandler tiene la capacidad de restaurar fragmentos específicos del modo de pantalla cuando una actividad está realizando la transición a una pantalla doble o única.
  • Diseños: contiene los diseños para ayudarle a crear la interfaz de usuario para dispositivos de doble pantalla.

    • FoldableLayout creará contenedores SingleScreen o DualScreen que contengan la interfaz de usuario.
    • FoldableFrameLayout ofrece la capacidad de distribuir vistas secundarias o moverlas en la pantalla izquierda o derecha.
  • RecyclerView: contiene un elemento RecyclerView.ItemDecoration personalizado y una clase LayoutManager con comportamiento de doble pantalla.

    • FoldableItemDecoration agrega espaciado para las celdas a fin de cubrir la bisagra del dispositivo cuando la aplicación está en modo distribuido. Esto se debe usar junto con FoldableLayoutManager.
    • FoldableLayoutManager proporciona LinearLayoutManager cuando el dispositivo está en modo de pantalla única y GridLayoutManager cuando el dispositivo está en modo distribuido.
    • FoldableStaggeredItemDecoration agrega espaciado para las celdas a fin de cubrir la bisagra del dispositivo cuando la aplicación está en modo distribuido. Esto se debe usar junto con FoldableStaggeredLayoutManager.
    • FoldableStaggeredLayoutManager proporciona LinearLayoutManager cuando el dispositivo está en modo de pantalla única y StaggeredGridLayoutManager cuando el dispositivo está en modo distribuido.
  • Pestañas: contiene una clase TabLayout personalizada con comportamiento de doble pantalla.

    • TabLayout puede detectar una característica plegable y da la opción de organizar las pestañas a su izquierda o derecha.
  • Componente de navegación plegable: basado en el componente de navegación de Google, este componente contiene un conjunto de bibliotecas que implementa el patrón de navegación de doble pantalla.

  • Notificaciones emergentes: objeto FrameLayout personalizado que se puede usar como contenedor para el objeto Snackbar a fin de colocarlo en dispositivos plegables.

Declaración de dependencias

  1. Asegúrese de que tiene el repositorio mavenCentral() en el archivo build.gradle de nivel superior:

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  2. Agregue las dependencias que necesite al archivo build.gradle de nivel de módulo (la versión actual puede ser diferente de la que se muestra aquí):

    Navegación inferior

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

    Controlador de fragmentos

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

    Diseños

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

    Pestañas

    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"
    

    Componente de navegación plegable

    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"
    

Módulos en desuso

Importante

Nuestra versión inicial de estos diseños estaba empaquetada en una sola biblioteca com.microsoft.device:dualscreen-layout.

Esta biblioteca está en desuso. Se recomienda usar las bibliotecas individuales que se han indicado para los controles que necesite.

  • ScreenManager (en desuso): contiene las clases principales que necesitan nuestros componentes para el desarrollo para dispositivos de doble pantalla. También se pueden usar directamente en el código.

    • Use ScreenManagerProvider para obtener la instancia única de SurfaceDuoScreenManager.
    • Utilice SurfaceDuoScreenManagerpara registrar agentes de escucha a fin de recibir una notificación cuando el modo de pantalla cambie.
    • Use ScreenInfoProvider para obtener una instancia de ScreenInfo.
    • Use ScreenInfo para obtener información de pantalla diferente según el modo de pantalla.

    Si desea elegir la versión que usa Display Mask API, agregue la siguiente línea al archivo de Gradle.

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

    Si desea elegir la versión que usa Window Manager API, agregue la línea siguiente.

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