AndroidN多窗口支持

作者: Android开发666 | 来源:发表于2017-05-15 20:36 被阅读31次

Android N 可以同时显示多个应用窗口。 在手机上,两个应用可以在“分屏”模式中左右并排或上下并排显示。例如,用户可以 在上面窗口聊QQ,下面窗口发送短信。

如图所示,两个app在分屏模式中上下显示:


MultiWindow

如何让你的app支持多窗口?

如果你的app支持Adnroid N,在AndroidManifest.xml文件中对<activity> 或 <application> 节点设置android:resizeableActivity就能启用或者禁用多窗口显示:

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标签中设置<layout>标签。<layout> 标签支持以下几种属性,这些属性影响 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更新了什么。

源码下载

Android N多窗口

      Android开发666 - 安卓开发技术分享
             扫描二维码加关注
Android开发666

相关文章

  • AndroidN多窗口支持

    Android N 可以同时显示多个应用窗口。 在手机上,两个应用可以在“分屏”模式中左右并排或上下并排显示。例如...

  • macOS 开发遇到的坑

    多窗口macOS 支持多窗口, 但是如果创建出来的 window 没有对象被持有的话, window 对象就会被清...

  • Nougat多窗口支持

    在Android7.0中引入了类似PC上多窗口的支持,屏幕上能同时显示多个,用户在与另一个应用交互的同时可以继续播...

  • UIScene与多窗口

    iPadOS 13开始支持多窗口。什么是多窗口?以系统自带的日历app为例: 日历app可以打开多个窗口。但是多窗...

  • terminator简单配置自己的layout

    terminator是一个支持多窗口的终端模拟器。在项目中,我会需要打开很多窗口来启动不同的服务,每天来到电脑桌前...

  • Android 7.0多窗口支持

    Android 7.0正式版在近期开始进行了推送,该版本中最大的一个特色就是支持在设备上展示多窗口供用户查看各个应...

  • 解决 Android N 7.0 上 报错:android.os

    解决AndroidN 上 安装Apk时报错:android.os.FileUriExposedException:...

  • 其他工具

    AndroidStudio中使用UML: https://github.com/GcsSloop/AndroidN...

  • Android 多窗口详解

    多窗口支持 Android N 添加了对同时显示多个应用窗口的支持。 在手持设备上,两个应用可以在“分屏”模式中左...

  • Android N(Android 7.0)适配注意事项

    Android N 这次的新特性包括多窗口的支持、通知栏支持直接回复消息、对部分广播的后台限制、网络数据节省开关等...

网友评论

    本文标题:AndroidN多窗口支持

    本文链接:https://www.haomeiwen.com/subject/mqxkxxtx.html