Prevent drawer overlay in wide settings mode

This commit is contained in:
ajp_anton
2026-06-22 03:43:55 +00:00
parent 9c7707830c
commit ee309161fd
@@ -13,6 +13,7 @@ import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.core.graphics.Insets; import androidx.core.graphics.Insets;
import androidx.core.view.GravityCompat; import androidx.core.view.GravityCompat;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
@@ -318,13 +319,19 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
permanentNavigationView.setVisibility(View.VISIBLE); permanentNavigationView.setVisibility(View.VISIBLE);
drawerLayout.closeDrawer(GravityCompat.START, false); drawerLayout.closeDrawer(GravityCompat.START, false);
} else { } else {
drawerNavigationView.setVisibility(View.VISIBLE);
drawerLayout.closeDrawer(GravityCompat.START, false); drawerLayout.closeDrawer(GravityCompat.START, false);
permanentNavigationView.setVisibility(View.GONE); permanentNavigationView.setVisibility(View.GONE);
drawerNavigationView.requestLayout();
} }
drawerToggle.syncState(); drawerToggle.syncState();
} }
if (permanentSidebar) {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.START);
drawerNavigationView.setVisibility(View.GONE);
} else {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.START);
drawerNavigationView.setVisibility(View.VISIBLE);
drawerNavigationView.requestLayout();
}
updateNavigationHeaderHeight(drawerNavigationView); updateNavigationHeaderHeight(drawerNavigationView);
updateNavigationHeaderHeight(permanentNavigationView); updateNavigationHeaderHeight(permanentNavigationView);
applyPageTitleVisibility(); applyPageTitleVisibility();