如何在不禁用 MultiWindow 模式的情况下禁用 Android 7.1.1 中的 SplitScreen 模式?
我正在使用自由窗口模式来打开多个活动。在设备的横向方向中,当将 Activity 拖到屏幕的左侧或右侧边缘时,Activity 会停靠并且 StackDivider 会拆分屏幕。禁用多窗口模式最终会禁用自由窗口模式。那么有没有办法通过编辑Android源代码来仅禁用SplitScreen模式(不禁用MultiWindow模式)?
如何在不禁用 MultiWindow 模式的情况下禁用 Android 7.1.1 中的 SplitScreen 模式?
我正在使用自由窗口模式来打开多个活动。在设备的横向方向中,当将 Activity 拖到屏幕的左侧或右侧边缘时,Activity 会停靠并且 StackDivider 会拆分屏幕。禁用多窗口模式最终会禁用自由窗口模式。那么有没有办法通过编辑Android源代码来仅禁用SplitScreen模式(不禁用MultiWindow模式)?
https://developer.android.com/guide/topics/ui/multi-window.html
根据文档,在清单活动或应用程序中执行此操作
android:resizeableActivity=["true" | "false"]
在自由格式模式下,当应用程序或窗口通过拖动其向左或向右移动屏幕的角落时,会DecorCaptionView
根据窗口的位置在左侧或右侧生成一个暗淡层,并在 MOtionEvent.ACTION_UP
事件时停靠到当前的暗淡侧。
每当窗口停靠时,都会调用MotionEvent
on的DecorCaptionView
操作frameworks/base/services/core/java/com/android/server/wm/TaskPositioner.java
并调用moveTaskToDockedStack()
方法。ActivityManagerService
中的updateDimLayerVisibility()
方法TaskPositioner.java
负责创建暗淡层。所以可以通过注释掉上面提到的两个方法调用行来禁用SplitScreen模式TaskPositioner.java
。