多窗口模式(multi-window mode)

多窗口模式(multi-window mode):是android7.0(API24)添加的,可以有分屏模式(split-screen mode),画中画模式( Picture-in-Picture mode),自由模式( freeform mode用户自动调整activity的大小)


1.进入多窗口模式的方法有两种:

  • 在最近打开窗口( Overview screen)中,长按activity的title,并将其拖拽到上方高亮的区域即可进入分屏模式
  • 在打开的窗口长按OverViewButton,也可以进入分屏模式
    多窗口模式(multi-window mode)_第1张图片 多窗口模式(multi-window mode)_第2张图片
    通过拉动分屏线可以改变两边屏幕的大小比例(若拉动后,activity的显示大小小于activity设置的最小尺寸比例将不会改变)
    在分屏模式下,不会改变activity的生命周期,用户最近一次互动的那个activity为resume状态,其他可见的activity为pause状态

2.设置自己的app是否支持多窗口模式

在 backstack的root activity(root设置了属性,其他activity也同时拥有了这个属性)中设置manifest属性android:resizeableActivity="false"(false为不支持分屏模式或自由窗口模式,true为支持(默认为true)),android:supportsPictureInPicture=["true" | "false"]为是否支持画中画模式(前提是resizeableActivity=true)


3.设置自己的app支持多窗口模式下的尺寸范围大小

在BackStack的RootActivity的manifest中设置
".MyActivity">
    "500dp"//自由模式时的默认高度
          android:defaultWidth="600dp"//自由模式时的默认宽度
          android:gravity="top|end"//自由模式时的重心位置
          android:minHeight="450dp"//分屏模式或自由模式时的最小高度
          android:minWidth="300dp" />//分屏模式或自由模式时的最小高度

4.多窗口模式下失效的属性

android:screenOrientation多窗口模式下设置activity屏幕的方向没有效果


5.判断activity是否为多窗口模式的方法

isInMultiWindowMode() 判断activity是否处于多窗口模式
isInPictureInPictureMode()判断activity是否处于画中画模式(若为true,则isInMultiWindowMode()也一定为true)
onMultiWindowModeChanged()当activity进入或退出多窗口模式时系统回调此方法
onPictureInPictureModeChanged()当activity进入或退出画中画模式时系统回调此方法

你可能感兴趣的:(多窗口模式(multi-window mode))