版权声明:转载请注明出处: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实现。