How can I programmatically open (show in screen) NavigationView

10,637

Solution 1

You need have reference to DrawerLayout

drawerLayout.openDrawer();
drawerLayout.closeDrawer();

use openDrawer and closeDrawer to change menu visibility

Solution 2

To improve the code:

drawerLayout.openDrawer(Gravity.LEFT);
drawerLayout.closeDrawer(Gravity.LEFT);
Share:
10,637
Peter Staranchuk
Author by

Peter Staranchuk

Lead Android Developer at Jambl GmbH.

Updated on July 22, 2022

Comments

  • Peter Staranchuk
    Peter Staranchuk almost 2 years

    How can I programmatically open (show in screen) NavigationView? I can't find any function what can be helpfull.

    I have this xml file:

    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">
    
        //...
    
        <android.support.design.widget.NavigationView
            android:id="@+id/navigation"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/nav_header"
            app:itemTextColor="#333"
            app:itemIconTint="#333"
            app:menu="@menu/navigation_drawer_items" />
    
    </android.support.v4.widget.DrawerLayout>
    
  • Peter Staranchuk
    Peter Staranchuk over 8 years
    yes, thank you) I used drawerLayout.openDrawer(Gravity.LEFT)
  • deathangel908
    deathangel908 over 7 years
    drawerLayout.openDrawer(Gravity.START) is preferable
  • mariopce
    mariopce over 7 years
    @deathangel908 Why drawerLayout.openDrawer(Gravity.START) is better then openDrawer ? I think openDrawer() is much more readable.
  • deathangel908
    deathangel908 over 7 years
    So it could go right in case if a person choose left hand locale.