在高分屏下navigation bar 被默认创建在底部,导致应用调用分屏时,主应用被分到了右边。
修改services/core/java/com/android/server/policy/PhoneWindowManager.java
底部导航栏创建位置
@NavigationBarPosition
private int navigationBarPosition(int displayWidth, int displayHeight, int displayRotation) {
if (mNavigationBarCanMove && displayWidth > displayHeight) {
if (displayRotation == Surface.ROTATION_270) {
return NAV_BAR_LEFT;
} else {
return NAV_BAR_RIGHT;
}
}
return NAV_BAR_BOTTOM;
}
发现一直走的是NAV_BAR_BOTTOM。
mNavigationBarCanMove = width != height && shortSizeDp < 600;
把mNavigationBarCanMove强制返回true则在横屏成功走了进去有返回NAV_BAR_LEFT。