双屏布局库
重要
本文介绍的功能和指南为公共预览版,在正式发布之前可能会有重大修改。 Microsoft 不对此处提供的信息作任何明示或默示的担保。
这些库包含一组视图、布局、帮助程序函数等内容,有助于 Android 开发人员为可折叠设备创建应用程序。
你可以将创建并处理所有屏幕模式的任务交由我们的组件来完成,你只需专注于如何创建自己的卓越应用就可以了。
模块
底部导航 - 包含具有双屏行为的自定义 BottomNavigationView。
BottomNavigationView
让你能够移动左侧或右侧屏幕上的 BottomNavigationView。
FragmentsHandler - 包含用于在不同屏幕模式下处理片段的代码。
- 当活动过渡到双屏或单屏模式时,
FragmentManagerStateHandler
能够还原屏幕模式特定的片段。
- 当活动过渡到双屏或单屏模式时,
布局 - 包含有助于创建双屏设备 UI 的布局。
FoldableLayout
会创建用于保存 UI 的SingleScreen
或DualScreen
容器。FoldableFrameLayout
让你能够跨子视图显示或在左侧或右侧屏幕上移动它们。
RecyclerView - 包含自定义 RecyclerView.ItemDecoration 和具有双屏行为的 LayoutManager 类。
- 在应用程序处于跨屏幕模式时,
FoldableItemDecoration
会为单元格添加间距以覆盖设备铰链。 这应该与FoldableLayoutManager
一起使用。 FoldableLayoutManager
在设备处于单屏模式时会提供LinearLayoutManager
,在设备处于跨区模式时则提供GridLayoutManager
。- 在应用程序处于跨屏幕模式时,
FoldableStaggeredItemDecoration
会为单元格添加间距以覆盖设备铰链。 这应该与FoldableStaggeredLayoutManager
一起使用。 FoldableStaggeredLayoutManager
在设备处于单屏模式时会提供LinearLayoutManager
,在设备处于跨区模式时则提供StaggeredGridLayoutManager
。
- 在应用程序处于跨屏幕模式时,
选项卡 - 包含具有双屏行为的自定义 TabLayout 类。
TabLayout
可以检测可折叠功能,并提供将其选项卡排列在左侧或右侧的选项。
可折叠设备导航组件 - 基于 Google 导航组件,此组件包含一组可实现双屏导航模式的库。
Snackbar - 一个自定义
FrameLayout
,可用作Snackbar
的容器以将其放置在可折叠设备上。
声明依赖项
确保顶级 build.gradle 文件中有 mavenCentral() 存储库 :
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"
- 使用