I'm using Android multi display and displaying my custom launcher on secondary display like monitor. I want to customize monitor's system navigation bar like in Zebra work station connect. I tried using below code and hide default navigation bar by using this solution. but not able to click buttons in custom navigation view and, when I open any application on monitor, default navigation bar is showing in front. Can any one help in customizing navigation bar like in zebra work station connect?
private void overLayNavigationBar() {
if (windowManager == null) {
windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
}
WindowManager.LayoutParams params;
if (layoutOverlayTaskbar == null) {
layoutOverlayTaskbar = (ConstraintLayout) LayoutInflater.from(this).inflate(R.layout.layout_navbar_overlay, null);
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS |
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
SDUtils.getNavigationBarHeight(this));
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = SDUtils.getNavigationBarHeight(this);
params.gravity = Gravity.LEFT | Gravity.BOTTOM;
params.x = _xOffset;
params.y = _yOffset;
windowManager.addView(layoutOverlayTaskbar, params);
} else {
params = (WindowManager.LayoutParams) layoutOverlayTaskbar.getLayoutParams();
params.x = _xOffset;
params.y = _yOffset;
windowManager.removeView(layoutOverlayTaskbar);
layoutOverlayTaskbar.setLayoutParams(params);
windowManager.addView(layoutOverlayTaskbar, params);
}
_xOffset += 40;
_yOffset += 100;
}
private void setWindowParameters() {
WindowManager.LayoutParams params = getWindow().getAttributes();
if (SDUtils.applyDisplayCutoutModeTo(params))
getWindow().setAttributes(params);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
}