Layout de guias

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.

O TabLayout é um TabLayout personalizado. Quando o aplicativo abrange várias telas em um dispositivo com um recurso de dobra vertical, o parâmetro displayPosition pode ser usado para fazer com que o widget seja renderizado à esquerda, à direita ou acima do recurso de dobra.

displayPosition

Retorna ou define um valor que especifica a tela em que a exibição será renderizada. Pode ser um de três valores:

  • DisplayPosition.START
  • DisplayPosition.END
  • DisplayPosition.DUAL

Eles são explicados em detalhes a seguir.

DisplayPosition.START

As guias são agrupadas na primeira tela. START: tabs on the first screen

DisplayPosition.END

As guias são agrupadas na segunda tela. END: tabs on the first screen

DisplayPosition.DUAL

As guias são estendidas em ambas as telas. As guias podem aparecer sob o recurso de dobra. Isso geralmente é um comportamento indesejável. Use arrangeButtons para evitar isso. DUAL: tabs on both

tabLayout.displayPosition = DisplayPosition.START

É possível fazer a mesma coisa usando o atributo app:display_position:

<com.microsoft.device.dualscreen.tabs.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tool:tools_application_mode="dual_screen"
    ...
    app:display_position="start"
     />

arrangeButtons

Quando o aplicativo está sobre o recurso de dobra e o componente tem um número ímpar de botões, o botão do meio pode ser obstruído pela dobradiça ou dobra. Uma forma de evitar isso é organizar os botões de modo diferente em cada lado do recurso de dobra:

The buttons can be arranged in different ways on the two screens

Isso pode ser feito com a função arrangeButtons.

tabLayout.arrangeButtons(2, 4)

useTransparentBackground

Quando o aplicativo for estendido e não houver botões em uma tela, a tela de fundo nessa tela poderá se tornar transparente:

DUAL: tabs on the second screen

tabLayout.useTransparentBackground = true

allowFlingGesture

Se definido como true, displayPosition poderá ser definido como DisplayPosition.START ou DisplayPosition.END com um gesto de arrastar no componente.

tabLayout.allowFlingGesture = true

É possível fazer a mesma coisa usando o atributo 'app:allowFlingGesture`:

<com.microsoft.device.dualscreen.tabs.TabLayout
   app:allowFlingGesture="true"/>