Android 10 修改导航栏的位置
代码路径:
frameworks/base/servicescore/java/com/android/server/wm/DisplayPolicy.java
frameworks/base/core/java/android/view/WindowManagerPolicyConstants.java
代码修改:
1、在DisplayPolicy.java文件中navigationBarPosition()方法中控制导航栏的位置
@NavigationBarPosition
int navigationBarPosition(int displayWidth, int displayHeight, int displayRotation) {
if (navigationBarCanMove() && displayWidth > displayHeight) {
if (displayRotation == Surface.ROTATION_270) {
return NAV_BAR_LEFT;
} else if (displayRotation == Surface.ROTATION_90) {
return NAV_BAR_RIGHT;
}
}
return NAV_BAR_BOTTOM;
}
日志打印
09-16 19:12:41.524 14644 14684 D test: navigationBarPosition NAV_BAR_LEFT 1
09-16 19:12:41.524 14644 14684 D test: navigationBarPosition NAV_BAR_RIGHT 2
09-16 19:12:41.524 14644 14684 D test: navigationBarPosition NAV_BAR_BOTTOM 4
备注说明:NAV_BAR_BOTTOM、NAV_BAR_RIGHT、NAV_BAR_LEFT其中该三个变量可以控制导航栏左边、右边、底部
2、在WindowManagerPolicyConstants.java文件中定义了NAV_BAR_BOTTOM、NAV_BAR_RIGHT、NAV_BAR_LEFT变量