在高分屏下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。
本文探讨了在高分辨率屏幕下,应用程序中底部导航栏的位置问题,特别是在分屏模式下,导航栏默认创建在底部导致主应用被分到屏幕右侧。通过修改PhoneWindowManager.java文件中的navigationBarPosition方法,强制导航栏在横屏模式下移动到左侧,解决了布局问题。
5291

被折叠的 条评论
为什么被折叠?



