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