Отключение режима SplitScreen в Nougat

Как отключить режим SplitScreen в Android 7.1.1, не отключая режим MultiWindow?

Я использую режим Freeform Window Mode для открытия нескольких действий. В альбомной ориентации устройства, когда действие перетаскивается к левому или правому краю экрана, действие закрепляется, а StackDivider разделяет экран. Отключение режима MultiWindow в конечном итоге отключает режим Freeform Window. Итак, есть ли способ отключить только режим SplitScreen (без отключения режима MultiWindow), отредактировав исходный код Android?


person Raptor    schedule 21.11.2017    source источник


Ответы (2)


https://developer.android.com/guide/topics/ui/multi-window.html

В соответствии с документацией сделайте это в своей манифестной активности или приложении.

android:resizeableActivity=["true" | "false"]
person turbandroid    schedule 26.03.2018

В режиме произвольной формы, когда приложение или окно перемещается в левый или правый угол экрана путем перетаскивания его DecorCaptionView, затемняемый слой создается либо слева, либо справа в зависимости от положения окна, и прикрепляется к текущей затемненной стороне по событию MOtionEvent.ACTION_UP .

Действия MotionEvent для DecorCaptionView обрабатываются методом frameworks/base/services/core/java/com/android/server/wm/TaskPositioner.java, а метод moveTaskToDockedStack() в ActivityManagerService вызывается всякий раз, когда окно закрепляется. Метод updateDimLayerVisibility() в TaskPositioner.java отвечает за создание затемненного слоя. Таким образом, режим SplitScreen можно отключить, закомментировав две упомянутые выше строки вызова метода в TaskPositioner.java.

person Raptor    schedule 11.04.2019