1.在清单的或节点中设置该属性,启用或禁用多窗口显示:
android:resizeableActivity=["true" | "false"]
2.在清单文件的节点中设置该属性,指明 Activity 是否支持画中画显示。 如果android:resizeableActivity为 false,将忽略该属性。
android:supportsPictureInPicture=["true" | "false"]
多窗口变更通知和查询
Activity类中添加了以下新方法,以支持多窗口显示。 有关各方法的详细信息,请参阅N Preview SDK 参考。
Activity.isInMultiWindowMode()
调用该方法以确认 Activity 是否处于多窗口模式。
Activity.isInPictureInPictureMode()
调用该方法以确认 Activity 是否处于画中画模式。
注:画中画模式是多窗口模式的特例。 如果myActivity.isInPictureInPictureMode()返回 true,则myActivity.isInMultiWindowMode()也返回 true。
Activity.onMultiWindowModeChanged()
Activity 进入或退出多窗口模式时系统将调用此方法。 在 Activity 进入多窗口模式时,系统向该方法传递 true 值,在退出多窗口模式时,则传递 false 值。
Activity.onPictureInPictureModeChanged()
Activity 进入或退出画中画模式时系统将调用此方法。 在 Activity 进入画中画模式时,系统向该方法传递 true 值,在退出画中画模式时,则传递 false 值。
每个方法还有Fragment版本,例如Fragment.isInMultiWindowMode()。
进入画中画模式
如需在画中画模式中启动 Activity,请调用新方法Activity.enterPictureInPictureMode()。 如果设备不支持画中画模式,则此方法无效。 如需了解详细信息,请参阅画中画文档。
在多窗口模式中启动新 Activity
在启动新 Activity 时,用户可以提示系统如果可能,应将新 Activity 显示在当前 Activity 旁边。 要执行此操作,可使用标志Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT。 传递此标志将请求以下行为:
如果设备处于分屏模式,系统会尝试在启动系统的 Activity 旁创建新 Activity,这样两个 Activity 将共享屏幕。 系统并不一定能实现此操作,但如果可以,系统将使两个 Activity 处于相邻的位置。
如果设备不处于分屏模式,则该标志无效。