Библиотеки макетов для двухэкранных устройств
Важно!
В этой статье описаны функциональные возможности общедоступной ознакомительной версии, а также инструкции по ее использованию. Сведения могут быть существенно изменены, прежде чем версия станет общедоступной. Майкрософт не дает никаких гарантий, явных или подразумеваемых, в отношении предоставленной здесь информации.
Эти библиотеки содержат набор представлений, макетов, вспомогательных функций и многое другое, чтобы помочь разработчикам Android создавать приложения для складных устройств.
Если за создание и обработку всех режимов экрана будут отвечать наши компоненты, основное внимание вы сможете уделять созданию своего приложения.
Модули
Bottom navigation. Содержит пользовательский класс BottomNavigationView для режима двойного экрана.
BottomNavigationView
позволяет перемещать BottomNavigationView между правым и левым экранами.
FragmentsHandler. Содержит код для управления фрагментами в различных режимах экрана.
FragmentManagerStateHandler
позволяет восстанавливать фрагменты, которые могут быть затронуты при переходе в режим двойного или одинарного экрана.
Layouts. Содержит макеты, помогающие создать пользовательский интерфейс для устройств с двойным экраном.
FoldableLayout
создаст контейнерыSingleScreen
илиDualScreen
для хранения пользовательского интерфейса.FoldableFrameLayout
позволяет работать с дочерними представлениями или перемещать их между правым и левым экранами.
RecyclerView — содержит пользовательский класс RecyclerView.ItemDecoration и класс LayoutManager для режима двойного экрана.
FoldableItemDecoration
добавляет в ячейки интервалы на месте петли, если приложение полностью развернуто. Используется вместе сFoldableLayoutManager
.FoldableLayoutManager
предоставляетLinearLayoutManager
, если устройство работает в режиме одинарного экрана, иGridLayoutManager
— в развернутом режиме.FoldableStaggeredItemDecoration
добавляет в ячейки интервалы на месте петли, если приложение полностью развернуто. Используется вместе сFoldableStaggeredLayoutManager
.FoldableStaggeredLayoutManager
предоставляетLinearLayoutManager
, если устройство работает в режиме одинарного экрана, иStaggeredGridLayoutManager
— в развернутом режиме.
Tabs. Содержит пользовательский класс TabLayout для режима двойного экрана.
TabLayout
позволяет обнаружить функцию с поддержкой складывания устройства и предоставляет возможность упорядочить вкладки справа или слева.
Компонент навигации складного устройства. Основан на компоненте навигации Google и содержит набор библиотек, внедряющий шаблон навигации для двойного экрана.
Snackbar — пользовательский элемент
FrameLayout
, который может использоваться в качестве контейнера дляSnackbar
для его размещения на складных устройствах.
Объявление зависимостей
Убедитесь, что у вас есть репозиторий mavenCentral() в файле build.gradle верхнего уровня:
allprojects { repositories { google() mavenCentral() } }
Добавьте требуемые зависимости в файл build.gradle на уровне модуля (текущая версия может отличаться от указанной здесь):
Нижнее представление навигации
implementation "com.microsoft.device.dualscreen:bottomnavigation:1.0.0-beta4"
Обработчик фрагментов
implementation "com.microsoft.device.dualscreen:fragmentshandler:1.0.0-beta5"
Макеты
implementation "com.microsoft.device.dualscreen:layouts:1.0.0-beta8"
Вкладки
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"
Компонент навигации складного устройства
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"
Устаревшие модули
Важно!
Первоначальный выпуск этих макетов был упакован в одну библиотеку com.microsoft.device:dualscreen-layout
.
Эта библиотека устарела. Мы рекомендуем использовать указанные выше отдельные библиотеки для требуемых элементов управления.
ScreenManager (устарел). Содержит основные классы, требуемые для работы компонентов при разработке для устройств с двойным экраном. Их также можно использовать непосредственно в коде.
- Используйте
ScreenManagerProvider
, чтобы получить отдельный экземплярSurfaceDuoScreenManager
. - Используйте
SurfaceDuoScreenManager
, чтобы зарегистрировать прослушивателей для оповещения об изменении режима экрана. - Используйте
ScreenInfoProvider
, чтобы получить экземплярScreenInfo
. - Используйте
ScreenInfo
, чтобы получать информацию о разных экранах в зависимости от режима экрана.
Если вы хотите выбрать версию, которая использует API маски экрана, добавьте следующую строку в файл gradle.
implementation "com.microsoft.device.dualscreen:screenmanager-displaymask:1.0.0-beta4"
Если же вы хотите выбрать версию, которая использует API диспетчера окон, добавьте следующую строку.
implementation "com.microsoft.device.dualscreen:screenmanager-windowmanager:1.0.0-beta4"
- Используйте