Android N多窗口支持
作者:Android开发666 时间:2022-08-08 19:27:37
Android N 可以同时显示多个应用窗口。 在手机上,两个应用可以在“分屏”模式中左右并排或上下并排显示。例如,用户可以 在上面窗口聊QQ,下面窗口发送短信。
如图所示,两个app在分屏模式中上下显示:
如何让你的app支持多窗口?
如果你的app支持Adnroid N,在AndroidManifest.xml文件中对
android:resizeableActivity=["true" | "false"]
如果这个属性的值为true,Activity能分屏和自由模式启动,如果这个属性的值为false,Activity不支持多窗口模式。
如果你的app支持Adnroid N,但是没有对该属性设置值。则该属性的值默认为true。也就是默认支持多窗口模式。
用户可以通过以下方式切换到多窗口模式
若用户打开 Overview 屏幕并长按 Activity 标题,则可以拖动该 Activity 至屏幕突出显示的区域,使 Activity 进入多窗口模式。
若用户长按 Overview 按钮,设备上的当前 Activity 将进入多窗口模式,同时将打开 Overview 屏幕,用户可在该屏幕中选择要共享屏幕的另一个 Activity。
多窗口生命周期
多窗口模式不会更改 Activity 生命周期。
在多窗口模式中,在指定时间只有最近与用户交互过的 Activity 为活动状态。 该 Activity 将被视为顶级 Activity。 所有其他 Activity 虽然可见,但均处于暂停状态。 但是,这些已暂停但可见的 Activity 在系统中享有比不可见 Activity 更高的优先级。 如果用户与其中一个暂停的 Activity 交互,该 Activity 将恢复,而之前的顶级 Activity 将暂停。
多窗口模式下的布局属性
对于 Android N,可以在activity标签中设置
android:defaultWidth 多窗口模式下的默认宽度。
android:defaultHeight 多窗口模式下的默认高度。
android:gravity 多窗口模式下的初始位置。
android:minimalHeight、android:minimalWidth 多窗口模式下的最小高度和最小宽度。如果用户在分屏模式中移动分界线,使 Activity 尺寸低于指定的最小值,系统会将 Activity 裁剪为用户请求的尺寸。
例如,以下配置如何指定 Activity 在多窗口模式中显示时 Activity 的默认大小、位置和最小尺寸:
<activity android:name=".MyActivity">
<layout android:defaultHeight="500dp"
android:defaultWidth="600dp"
android:gravity="top|end"
android:minimalHeight="450dp"
android:minimalWidth="300dp" />
</activity>
多窗口变更通知和查询
Activity 类中添加了以下新方法,以支持多窗口显示。
Activity.isInMultiWindowMode() 判断是否处于多窗口模式
Activity.onMultiWindowModeChanged() 进入或退出多窗口模式时会回调这个方法。
其实多窗口在工作中应该使用的机会不大,毕竟手机屏幕比较小,分屏都看不到什么界面了。不过作为开发者我们有必要去了解一下Android 7.0更新了什么。
源码下载
来源:http://www.cnblogs.com/yishaochu/p/6858269.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
详解java一维数组及练习题实例
简单了解redis常见客户端及Sharding机制原理
java代码实现C盘文件统计工具
![](https://img.aspxhome.com/file/2023/4/67664_0s.png)
SpringMVC如何接收参数各种场景
java获取当前时间并格式化代码实例
![](https://img.aspxhome.com/file/2023/0/79240_0s.png)
JavaWeb开发使用Cookie创建-获取-持久化、自动登录、购物记录、作用路径
![](https://img.aspxhome.com/file/2023/2/64902_0s.png)
Java并发编程之闭锁与栅栏的实现
Java多线程死锁与资源限制操作
微服务通过Feign调用进行密码安全认证操作
![](https://img.aspxhome.com/file/2023/8/57958_0s.png)
Java sha1散列算法原理及代码实例
微信小程序与AspNetCore SignalR聊天实例代码
![](https://img.aspxhome.com/file/2023/4/86794_0s.gif)
android通过拼音搜索中文的功能实现代码
![](https://img.aspxhome.com/file/2023/8/93268_0s.png)
Java面试题冲刺第二十五天--并发编程3
![](https://img.aspxhome.com/file/2023/9/58299_0s.png)
Springboot整合Shiro的代码实例
JavaCV实现照片马赛克效果
![](https://img.aspxhome.com/file/2023/4/66624_0s.jpg)
详解spring mvc中url-pattern的写法
Android DataBinding手把手入门教程
![](https://img.aspxhome.com/file/2023/8/88348_0s.png)
浅析Mybatis 在CS程序中的应用
![](https://img.aspxhome.com/file/2023/2/57422_0s.jpg)
Spring+SpringMVC+MyBatis深入学习及搭建(二)之MyBatis原始Dao开发和mapper代理开发
![](https://img.aspxhome.com/file/2023/4/67124_0s.png)
DUCC配置平台实现一个动态化线程池示例代码
![](https://img.aspxhome.com/file/2023/4/60354_0s.png)