Android N分屏(多窗口)适配

版权声明:转载请注明出处:https://blog.csdn.net/zwjemperor https://blog.csdn.net/zwjemperor/article/details/52337106

Android N已正式发布,新增了多项特性,详细介绍见官网 https://developer.android.com/about/versions/nougat/android-7.0.html

其中最重要新特性的是对多窗口的支持,官方文档 https://developer.android.com/guide/topics/ui/multi-window.html

本文只梳理App适配分屏的注意点。


1. 分屏状态下,非当前活跃App Activity在paused状态,非stopped状态

停止播放视频等操作需要在onStop中进行,不能在onPause中

2. 窗口大小变化的处理

默认情况下,横竖屏切换、窗口大小变化时,Activity都会被重建,需要恢复用户的输入信息

可以配置Activity的config,自定义处理窗口变化的逻辑,使Activity不被重建。

<activity
            android:name=“.MyActivity"
            android:configChanges="keyboardHidden|orientation|screenSize|screenLayout" />
配置configChanges后,窗口大小变化时,系统会触发Activity的onConfigurationChanged()回调,用户需要可以在onConfigurationChanged()中做逻辑处理。

尤其注意使用screen size计算view大小的场景,由于onConfigurationChanged后screen size发生变化,UI需要重新计算并刷新。

3. 页面在分屏状态下无法展示完全的问题

分屏状态下窗口size相对较小,页面必须支持上下或左右滑动,保证页面能够展示完全。

4. H5页面的处理

分屏状态切换和窗口大小变化时,native需和h5进行交互,h5页面做相应的适配,交互可以通过native回调js实现。

猜你喜欢

转载自blog.csdn.net/zwjemperor/article/details/52337106