提问人:Javier 提问时间:11/17/2023 更新时间:11/17/2023 访问量:35
Android 自动检测多窗口屏幕
Android Auto detect multi-window screen
答:
0赞
Rob
11/17/2023
#1
如果我没记错的话,当共享屏幕和应用程序 UI 的大小(显示您的应用程序的屏幕部分)时,系统会使用新的屏幕尺寸重新创建您的应用程序当前启动活动,如果正确,您应该将活动 UI 状态存储在视图模型中,并在重新创建活动时重用它, 您可以通过在 Acticity 生命周期函数中添加日志来检查这一点,并查看共享屏幕时发生的情况。
如果答案的第一部分仍然是错误的(这可能是因为我只是以这种方式想象这个过程,可能是我错了,我没有测试过),你会弄清楚那一刻发生了什么,我希望这能帮助你至少进入下一步。
1赞
Ben Sagmoe
11/17/2023
#2
目前,使用汽车应用库构建的应用无法做到这一点。由于您的应用看起来像是导航应用,因此当 Android Auto 进入分屏模式导致图面大小发生变化时,您仍会收到回调。您的用例是什么?SufaceCallback
评论
0赞
Javier
11/17/2023
是的,它是一个导航应用程序。是的,我目前正在使用 SurfaceCallBacks 来检测屏幕尺寸的增加/减少。就我而言,当应用程序全屏/拆分时,我想在屏幕底部显示/隐藏道路文本标签。导航模板方向面板在屏幕展开时移动,因此也应该有一种方法来检测屏幕更改。onCarConfigurationChanged 也不会检测到该更改
0赞
Winkz
12/22/2023
#3
当您在全屏和分屏之间切换时,VisibileArea 和 StableArea 都会更新。
看起来您正在使用 mapbox 的地图?如果是这样,您可以使用 MapboxCarMapObserver 的 onVisibleAreaChanged 来检测更改,然后使用新的可见区域来设置正确的填充以将 GPS 标记居中
评论