0

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);
}

enter image description here

Srikanth
  • 1,555
  • 12
  • 20

0 Answers0