Idealnie byłoby, gdyby szuflada nawigacji zamknęła się po naciśnięciu jakiegoś elementu, ale nie dzieje się to automatycznie. Jak to zrobić ? Dzięki!
android
navigation-drawer
Vipul J.
źródło
źródło
Odpowiedzi:
Rozumiem!
private DrawerLayout mDrawerLayout; mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerLayout.closeDrawers();
Działa doskonale.
źródło
Dla mnie ten działał -
mDrawerLayout.closeDrawer(Gravity.START, false);
źródło
DrawerLayout mDrawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout) closeDrawer(); // called when you want to close public void closeDrawer() { if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) { mDrawerLayout.closeDrawer(GravityCompat.START); } }
źródło
W prawym dolnym rogu onNavigationItemSelected tam, gdzie kończy się przypadek przełącznika, należy to naprawić. mDrawerLayout.closeDrawers ();
public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ } mDrawerLayout.closeDrawers(); return true; }
źródło
Jeśli masz układ mDrawerLayout jako układ szuflady, możesz go zamknąć, gdy jest otwarty.
@Override public void onBackPressed() { if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) { this.mDrawerLayout.closeDrawer(GravityCompat.START); } else { super.onBackPressed(); } }
źródło
closeDrawer();//when you want to call public void closeDrawer() { if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) { mDrawerLayout.closeDrawer(GravityCompat.START); } }
źródło