在Activity的setContentView之前,加入:
requestWindowFeature(Window.FEATURE_NO_TITLE);
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
| WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.setNavigationBarColor(Color.TRANSPARENT);
WindowManager.LayoutParams lp = getWindow().getAttributes();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
}
window.setAttributes(lp);
隐藏NavigationBar的修改:
window.setNavigationBarColor(Color.TRANSPARENT);
将NavigationHandle的View隐藏:
SystemUI/src/com/android/systemui/navigationbar/gestural/NavigationHandle.java
public NavigationHandle(Context context, AttributeSet attr) {
super(context, attr);
final Resources res = context.getResources();
// add by lign. 20240514 start
if (SubDisplayUtils.isSmallScreen()) {
mRadius = 0;
mBottom = 0;
} else {
mRadius = res.getDimension(R.dimen.navigation_handle_radius);
mBottom = res.getDimension(R.dimen.navigation_handle_bottom);
}
// add by lign. 20240514 end
final int dualToneDarkTheme = Utils.getThemeAttr(context, R.attr.darkIconTheme);
final int dualToneLightTheme = Utils.getThemeAttr(context, R.attr.lightIconTheme);
Context lightContext = new ContextThemeWrapper(context, dualToneLightTheme);
Context darkContext = new ContextThemeWrapper(context, dualToneDarkTheme);
mLightColor = Utils.getColorAttrDefaultColor(lightContext, R.attr.homeHandleColor);
mDarkColor = Utils.getColorAttrDefaultColor(darkContext, R.attr.homeHandleColor);
mPaint.setAntiAlias(true);
setFocusable(false);
}