How to set Navigation Drawer to be opened from right to left How to set Navigation Drawer to be opened from right to left android android

How to set Navigation Drawer to be opened from right to left


In your main layout set your ListView gravity to right:

android:layout_gravity="right" 

Also in your code :

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,            R.drawable.ic_drawer, R.string.drawer_open,            R.string.drawer_close) {    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (item != null && item.getItemId() == android.R.id.home) {            if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {                mDrawerLayout.closeDrawer(Gravity.RIGHT);            }             else {                mDrawerLayout.openDrawer(Gravity.RIGHT);            }        }        return false;    }};

hope it works :)


Add this code to manifest:

<application android:supportsRtl="true">

and then write this code on Oncreate:

getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

It works for me. ;)


SOLUTION


your_layout.xml:

<?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="end">    <include layout="@layout/app_bar_root"        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="end"        android:fitsSystemWindows="true"        app:itemTextColor="@color/black"        app:menu="@menu/activity_root_drawer" /></android.support.v4.widget.DrawerLayout>

YourActivity.java:

@Overrideprotected void onCreate(Bundle savedInstanceState) {//...toolbar = (Toolbar) findViewById(R.id.toolbar);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();toolbar.setNavigationOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (drawer.isDrawerOpen(Gravity.RIGHT)) {                drawer.closeDrawer(Gravity.RIGHT);            } else {                drawer.openDrawer(Gravity.RIGHT);            }        }    });//...}