Поделиться через


Макет вкладок

Важно!

В этой статье описаны функциональные возможности общедоступной ознакомительной версии, а также инструкции по ее использованию. Сведения могут быть существенно изменены, прежде чем версия станет общедоступной. Майкрософт не дает никаких гарантий, явных или подразумеваемых, в отношении предоставленной здесь информации.

TabLayout — это пользовательский класс TabLayout. Когда приложение отображается на экранах на устройстве с возможностью складывания по вертикали, параметр displayPosition можно использовать для отображения виджета слева или справа от петли либо над ней.

displayPosition

Возвращает или задает значение, определяющее, на каком экране будет отображаться представление. Можно использовать одно из трех значений:

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

Подробности приведены ниже.

DisplayPosition.START

Вкладки группируются на первом экране. START: tabs on the first screen

DisplayPosition.END

Вкладки группируются на втором экране. END: tabs on the first screen

DisplayPosition.DUAL

Вкладки отображаются на двух экранах. Вкладки могут отображаться под петлей, а такое поведение нежелательно. Избежать этого можно с помощью функции arrangeButtons. DUAL: tabs on both

tabLayout.displayPosition = DisplayPosition.START

Этого же результата можно достичь, используя атрибут 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

Если приложение отображается над петлей, а компонент имеет нечетное число кнопок, средняя кнопка может перекрываться петлей или попадать на сгиб. Чтобы избежать этого, вы можете упорядочить кнопки с каждой стороны петли:

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

Это можно сделать с помощью функции arrangeButtons.

tabLayout.arrangeButtons(2, 4)

useTransparentBackground

Если приложение развернуто и на экране отсутствуют кнопки, фон на таком экране можно сделать прозрачным:

DUAL: tabs on the second screen

tabLayout.useTransparentBackground = true

allowFlingGesture

Если задать значение true, для displayPosition можно указать значение DisplayPosition.START или DisplayPosition.END при жесте смахивания на компоненте.

tabLayout.allowFlingGesture = true

Этого же результата можно достичь, используя атрибут app:allowFlingGesture:

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