Bibliotecas de layout de tela dupla

Importante

Este artigo descreve funcionalidades e diretrizes que estão em versão prévia pública e podem ser modificadas substancialmente antes de passarem para a disponibilidade geral. A Microsoft não faz nenhuma garantia, expressa ou implícita, com relação às informações fornecidas aqui.

Essas bibliotecas contêm um conjunto de exibições, layouts, funções auxiliares e muito mais para ajudar os desenvolvedores de Android a criar aplicativos para dispositivos de dobráveis.

Se você deixar a responsabilidade de criar e tratar de todos os modos de tela para os nossos componentes, poderá concentrar-se mais em criar um aplicativo excelente.

Módulos

  • Navegação inferior – contém um BottomNavigationView personalizado com comportamento de tela dupla.

    • BottomNavigationView possibilita mover o BottomNavigationView para a tela esquerda ou direita.
  • FragmentsHandler – contém o código para manipular fragmentos em diferentes modos de tela.

    • O FragmentManagerStateHandler possibilita restaurar fragmentos específicos do modo de tela quando uma atividade está em transição para uma tela dupla ou única.
  • Layouts – contém os layouts que ajudam você a criar a interface do usuário para dispositivos de tela dupla.

    • O FoldableLayout criará contêineres SingleScreen ou DualScreen para conservar sua interface do usuário.
    • FoldableFrameLayout possibilita abranger exibições filhas ou movê-las para a tela esquerda ou direita.
  • RecyclerView ─ Contém um RecyclerView.ItemDecoration personalizado e uma classe LayoutManager com comportamento de tela dupla.

    • FoldableItemDecoration adiciona espaçamento para as células a fim de cobrir a dobradiça do dispositivo quando o aplicativo está no modo estendido. Deve ser usado com FoldableLayoutManager.
    • FoldableLayoutManager fornece um LinearLayoutManager quando o dispositivo está no modo de tela única e um GridLayoutManager quando ele está no modo estendido.
    • FoldableStaggeredItemDecoration adiciona espaçamento para as células a fim de cobrir a dobradiça do dispositivo quando o aplicativo está no modo estendido. Deve ser usado com FoldableStaggeredLayoutManager.
    • FoldableStaggeredLayoutManager fonece um LinearLayoutManager quando o dispositivo está no modo de tela única e um StaggeredGridLayoutManager quando ele está no modo estendido.
  • Guias – contém uma classe TabLayout personalizada com comportamento de tela dupla.

    • O TabLayout pode detectar um recurso dobrável e fornece a opção de organizar as guias à esquerda ou à direita dele.
  • Componente de Navegação Dobrável – baseado no Componente de Navegação do Google, esse componente contém um conjunto de bibliotecas que implementa o padrão de navegação de tela dupla.

  • Snackbar – um FrameLayout personalizado que pode ser usado como um contêiner do Snackbar para posicioná-lo em dispositivos dobráveis.

Declarando dependências

  1. Verifique se você tem o repositório mavenCentral() no arquivo build.gradle de nível superior:

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  2. Adicione as dependências que você necessita ao arquivo build.gradle de nível de módulo (a versão atual pode ser diferente da mostrada aqui):

    Navegação inferior

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

    Manipulador de fragmentos

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

    Layouts

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

    Guias

    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 Navegação Dobrável

    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 preteridos

Importante

Nossa versão inicial desses layouts foi empacotada em uma única biblioteca com.microsoft.device:dualscreen-layout.

Essa biblioteca foi preterida. É recomendável usar as bibliotecas individuais acima para os controles de que você precisa.

  • ScreenManager (preterido) – contém as classes principais que são necessárias para que nossos componentes sejam desenvolvidos para dispositivos de tela dupla. Você também pode usá-las diretamente no seu código.

    • Use ScreenManagerProvider para obter a única instância do SurfaceDuoScreenManager.
    • Use SurfaceDuoScreenManagerpara registrar ouvintes a fim de receber a notificação quando o modo de tela for alterado.
    • Use ScreenInfoProvider para obter uma instância do ScreenInfo.
    • Use ScreenInfo para obter informações de tela diferentes, de acordo com o modo de tela.

    Se você quiser escolher a versão que usa a API de máscara de exibição, adicione a linha a seguir ao arquivo gradle.

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

    Ou, se desejar escolher a versão que usa a API do Gerenciador de Janelas, adicione a linha a seguir.

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