Android: How to set android.support.design.widget.NavigationView open from right in android studio 1.5.1? -


i using android studio 1.5.1. version makes navigation drawer activity own:

<?xml version="1.0" encoding="utf-8"?> <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"     tools:opendrawer="start">       <include         layout="@layout/app_bar_main"         android:layout_width="match_parent"         android:layout_height="match_parent" />     <android.support.design.widget.navigationview         android:id="@+id/nav_view"         android:layout_width="wrap_content"         android:layout_height="match_parent"         android:layout_gravity="start"         android:fitssystemwindows="true"         app:headerlayout="@layout/nav_header_main"         app:menu="@menu/activity_main_drawer" /> </android.support.v4.widget.drawerlayout> 

but slider menu opens left. want set open write. changed above code code:

<?xml version="1.0" encoding="utf-8"?> <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"     tools:opendrawer="right">     <include         layout="@layout/app_bar_main"         android:layout_width="match_parent"         android:layout_height="match_parent" />     <android.support.design.widget.navigationview         android:id="@+id/nav_view"         android:layout_width="wrap_content"         android:layout_height="match_parent"         android:layout_gravity="right"         android:fitssystemwindows="true"         app:headerlayout="@layout/nav_header_main"         app:menu="@menu/activity_main_drawer" /> </android.support.v4.widget.drawerlayout> 

so in design mode, drawer menu comes right position. , write code (accourding answer in stack overflow) in mainactivity.java:

public class mainactivity extends appcompatactivity         implements navigationview.onnavigationitemselectedlistener {      drawerlayout drawer;       @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);         toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar);         setsupportactionbar(toolbar);          floatingactionbutton fab = (floatingactionbutton) findviewbyid(r.id.fab);         fab.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view view) {                 snackbar.make(view, "replace own action", snackbar.length_long)                         .setaction("action", null).show();             }         });          drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);         actionbardrawertoggle toggle = new actionbardrawertoggle(                 this, drawer, toolbar, r.string.navigation_drawer_open, r.string.navigation_drawer_close);         drawer.setdrawerlistener(toggle);         toggle.syncstate();            navigationview navigationview = (navigationview) findviewbyid(r.id.nav_view);         navigationview.setnavigationitemselectedlistener(this);     }      @override     public void onbackpressed() {         drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);         if (drawer.isdraweropen(gravitycompat.start)) {             drawer.closedrawer(gravitycompat.start);         } else {             super.onbackpressed();         }     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {          if (item != null && item.getitemid() == android.r.id.home) {             if (drawer.isdraweropen(gravity.right)) {                 drawer.closedrawer(gravity.right);             } else {                 drawer.opendrawer(gravity.right);             }         } else {             return false;         }     }      @suppresswarnings("statementwithemptybody")     @override     public boolean onnavigationitemselected(menuitem item) {         // handle navigation view item clicks here.         int id = item.getitemid();          if (id == r.id.nav_camera) {             // handle camera action         } else if (id == r.id.nav_gallery) {          } else if (id == r.id.nav_slideshow) {          } else if (id == r.id.nav_manage) {          } else if (id == r.id.nav_share) {          } else if (id == r.id.nav_send) {          }          drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);         drawer.closedrawer(gravitycompat.start);         return true;     } } 

but when run program, in genymotion, menu button still on left upper side , when click on it, program crash...

what problem , how can set menu open right?!

try not use actionbardrawertoggle class , in r.menu.main, create menu item (with hamburger icon example) visible toolbar. when activity rendered, menu item placed right in toolbar. instead of using android.r.id.home, use own menu item id when onoptionsitemselected called. , in xml file, change android:layout_gravity="right" android:layout_gravity="end". when call drawer.opendrawer();, use correct parameter accordingly method.


Comments

Popular posts from this blog

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -