Android - 分屏模式(多窗口模式)
简介
在Android N以上设备,可以开启多窗口模式,也叫分屏模式,即在屏幕上可以同时显示多个窗口,这多个窗口可以是不同应用的,也可以是同一个应用的。
禁用分屏
app默认允许分屏,如果想要禁止分屏可以在AndroidManifest的Application节点或者Activity节点添加属性
android:resizeableActivity="false"
新增属性
AndroidManifest中Activity节点关于多窗口新增了一些属性,这些属性用于控制在开启多窗口模式后的一些参数
<activity android:name=".MusicActivity"><layout//设置分屏模式启动时Activity的默认宽度android:defaultWidth="600dp" //设置分屏模式启动时Activity的默认高度android:defaultHeight="500dp"//设置分屏模式启动时Activity的初始位置android:gravity="top|end"//设置分屏模式启动时Activity的最小大小android:minimalSize="450dp"//设置分屏模式启动时Activity的最小宽度android:minimalWidth="450dp"//设置分屏模式启动时Activity的最小高度android:minimalHeight="450dp"tools:targetApi="n" />
</activity>
Activity中关于分屏的回调函数
进入和退出分屏回调函数:
onMultiWindowModeChanged(boolean isInMultiWindowMode)
isInMultiWindowMode 标识是否处于分屏模式
判断是否是分屏
isInMultiWindowMode(),true为分屏模式
对生命周期的影响
在进入分屏和退出分屏模式,activity默认会重启
禁止activity重启
- 网上有人说是activity的configChanges属性值设为“screenLayout|orientation”,但是该方法我测试没有效果
- 实测有效的是将值设为:“screenSize|smallestScreenSize|screenLayout|orientation”
分屏时的生命周期:
- 未禁止Activity重启时
- 切换至多任务页面:onPause----》onSaveInstanceState—》onStop
- 进入分屏:onDestroy----》onCreate—》onStart–》onRestoreInstanceState----》onResume—》onPause----》onMultiWindowModeChanged----》onResume
- 来回操作自测app和其他app:onPause ----》onResume 无限循环,也就是说分屏模式下有未获得焦点的那个屏幕是暂停状态,因此如果做播放器不能在onPause里面暂停播放,应该在onStop里面暂停。
- 退出分屏:onPause—》onSaveInstanceState—》onStop–》onDestroy–》onCreate–》onStart—》onRestoreInstanceState----》onResume—》onConfigurationChanged–》onMultiWindowModeChanged—》onPause–》onSaveInstanceState–》onStop
- 禁止Activity重启后:(其他都一样)
- 进入分屏:onConfigurationChanged–》onStart–》onMultiWindowModeChanged–》onResume
- 退出分屏:onConfigurationChanged–》onConfigurationChanged—》onMultiWindowModeChanged
补充说明:在测试的时候发现小米手机分屏和其他手机分屏实现不一样,比如在两个屏幕间来回操作时,小米手机没有反复回调onPause和onResume方法,可能不同手机厂商实现有点不一样。
进入分屏模式
两个应用进入分屏长按任务键操作即可,这边主要讲下同一应用下两个Activity进入分屏
Intent intent = new Intent(mContext, MainActivity.class);
//让新Activity在新的栈中启动
intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Android - 分屏模式(多窗口模式)相关推荐
- Android分屏显示(多窗口支持) 开发总结
最近公司有分屏显示需求,遇到几点问题 ,在此记录,以做备忘. 我所谓的分屏显示,是在同一个界面内,分屏显示两个app的界面 或者是 注意点1: 系统好像没有获取应用显示的左右或者上下位置的方法,所以我 ...
- Android实现一键开启自由窗口、分屏、画中画模式——自由窗口模式
转载请注明出处:https://blog.csdn.net/sunmmer123 忙过一段时间后,新需求又来了"多个应用/页面间在不用退出或者切换的情况下,可同时操作" 咋一听是不 ...
- Android 分屏模式-多窗口支持
第一篇博客请多多担待,测试一下. 来自于https://developer.android.com/guide/topics/ui/multi-window.html#lifecycle Androi ...
- android分屏模式_Android多窗口模式(分屏模式)
Android N 支持多窗口模式,或者叫分屏模式,即在屏幕上可以同时显示多个窗口. 在手机模式下,两个应用可以并排或者上下同时显示,如图 1 所示,屏幕上半部分的窗口是系统的 CLOCK 应用,下半 ...
- android分屏模式_Android分屏模式开发注意事项
Android分屏模式开发注意到主页面在分屏模式下,页面所占比例在增大或者减小的时候都会调用oncreat方法,所以查资料总结一下分屏对页面的生命周期的影响以及开发时的注意事项: App页面从全屏模式 ...
- google 进入分屏后在横屏模式按home键界面错乱( 四) 分屏的转屏过程
google 进入分屏后在横屏模式按home键界面错乱( 四) 你确定你了解分屏的整个流程? 代码阅读,请到此处http://androidxref.com 查看原生代码 google 分屏 横屏模式 ...
- 三星android分屏视图怎么关闭,三星S9/S9+分屏窗口设置及使用教程
今天来告诉大家在三星S9/S9+上面的另一种多窗口解决方案--分屏窗口. 分屏窗口呢也一共提供了两种方式+一种隐藏方式,分别是分屏及对齐窗口,下面呢就跟大家一一道来. 类型I[分屏视图] 首先是打开这 ...
- Android N分屏(多窗口)适配
Android N已正式发布,新增了多项特性,详细介绍见官网 https://developer.android.com/about/versions/nougat/android-7.0.html ...
- 是时候学习Android分屏开发了
今年Google发布了Android N,Android N新增了不少功能,最受关注的自然就是分屏了. 这一功能对国内的很多手机用户并不陌生,其实很多第三方系统早已经实现了这一功能,如EMUI,Fly ...
- Android分屏功能,适配及相关问题
Android Developers-开发-API指南-用户界面-多窗口支持: https://developer.android.google.cn/guide/topics/ui/multi-wi ...
最新文章
- CentOS 5.2 下安装tripwire2.3.1.2出错解决
- Siamese Network (应用篇4) :块匹配中一致性特征和距离测度学习 CVPR2015
- plsql存储过程修改后怎么保存_分布式基础-存储引擎
- Jmeter如何将返回值作为下一接口的参数?
- 【luogu3373】模板 线段树 2
- 转 node.js和 android中java加密解密一致性问题;
- IE报证书错误提示页面,如何屏蔽?
- 利用Oh-My-Zsh打造你的超级终端
- 增加PRODUCT_BOOT_JARS及类
- [答疑]工程管理组织的业务用例图
- python大学生生活信息交互平台的设计与实现毕业设计-附源码031315
- elasticsearch定时删除过期索引index
- 三大运营商URL欺骗;手机免费上网,测试,教程,服务器
- uni-app中如何引入uViewUI?
- 机器学习之聚类常用方法
- www.wwwwwwwwww
- 爬取原神同人社的pljj照片
- PHP Framework YII的里的gii设置。
- PPT:智慧物流园区建设方案
- 自定义IP地址安装固定驱动柯美c266打印机,并自动销毁安装程序
热门文章
- itools android玩游戏,itools安卓模拟器电脑版
- LoadRunner函数大全
- GitHub 标星 120K+!这些神器仅需一行代码即可下载全网视频!
- iTunes 给iPhone制作铃声
- python如何用macd选股_使用MACD指标进行选股的四种方法
- 【Coding】Latex添加表格注释footnote
- 手把手教你安装MINIGUI编程环境 (MINIGUI版本3.2.0)
- Golang中的runtime.Caller理解
- 实用frida进阶:内存漫游、hook anywhere、抓包
- 五大学科竞赛(三)-o2 -lm编译选项