问题
在Android平台上一直都支持多屏幕设备开发,使用android.app.Presentation可以快速的创建一个副屏显示页面但是只能使用传统的View布局,并不支持直接使用compose-ui,导致我们在开发多屏幕应用时无法统一UI框架。
幸运的是Android提供了Dialog的Compose实现方式,位于android.compose.ui:ui组件中的androidx.compose.ui.window.Dialog,而android.app.Presentation恰恰是继承自Dialog的一个子类,于是可以得出一个实现方案,魔改出一个androidx.compose.ui.window.Presentation就可以使用了。
解决方法
- AndroidPresentation.android.kt
首先打开手机开发者选项->模拟辅助显示设备->720P,1080P(双屏)

打开后屏幕会显示出两个区域,这就是模拟的副屏,目前这个副屏无法提供手势操作,最好有实体的双屏设备来测试,比如微软的suface duo。
使用示例
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 获取所有的屏幕信息(主屏+副屏)
displayManagerCompat.displays.also { ownDisplayList ->
setContent { // 设置内容
ownDisplayList.forEach { // 遍历屏幕
if (it.displayId == Display.DEFAULT_DISPLAY) { // 是否为默认屏幕(主屏)
composeContent(it) // 组合屏幕UI
} else {
// 使用AndroidPr

这篇博客探讨了如何在Android中利用Compose解决多屏设备的开发问题,通过魔改Dialog实现统一UI框架。文章介绍了开启模拟副屏的步骤,并提供了一个Compose支持的解决方案,同时分享了扩展使用的思路和已修改的ComposePresentation代码示例。
最低0.47元/天 解锁文章
8763

被折叠的 条评论
为什么被折叠?



