Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Right to left menu items Android

I have an Slide menu as picture one. And i need to align its items title to be right to left like slide two . I tried gravity=right but didn't work.

Here is my code :

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:gravity="end"
    android:layout_gravity="end">

    <group android:checkableBehavior="single"
        android:layout_gravity="end"
        android:gravity="end">

        <item
            android:id="@+id/nav_1"
            android:icon="@drawable/ic_keyboard_arrow_left_24dp"
            android:gravity="end"
            android:layout_gravity="end"
            android:title="آگهی خود را ثبت کنید"/>

</menu>

enter image description here

The desired menu will be :

enter image description here

like image 376
Ali Esmaeili Avatar asked Apr 09 '16 12:04

Ali Esmaeili


People also ask

How do I change my navigation drawer to open from right to left?

set DrawerLayout tools:openDrawer="end" set NavigationView android:layout_gravity="end" change tag view from androidx.

What is onOptionsItemSelected() in Android?

If your activity includes fragments, the system first calls onOptionsItemSelected() for the activity then for each fragment (in the order each fragment was added) until one returns true or all fragments have been called.


2 Answers

if you are going to change your Menu direction which is inside a DrawerLayout just add

android:layoutDirection="rtl"

to your NavigationView element. output should be like:

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="right"
    android:fitsSystemWindows="true"
    android:layoutDirection="rtl"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" />
like image 107
Ali.Rashidi Avatar answered Oct 10 '22 02:10

Ali.Rashidi


To create right to left menu you just need to add android:layoutDirection="rtl" to the menu tag


android:layoutDirection="rtl"


<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:gravity="end"
    android:layoutDirection="rtl"
    android:layout_gravity="end">

    <group android:checkableBehavior="single"
        android:layout_gravity="end"
        android:gravity="end">

        <item
            android:id="@+id/nav_1"
            android:icon="@drawable/ic_keyboard_arrow_left_24dp"
            android:gravity="end"
            android:layout_gravity="end"
            android:title="آگهی خود را ثبت کنید"/>
    </group>
</menu>

you can see here the source:

http://developer.android.com/reference/android/util/LayoutDirection.html#LTR

api 17 and above

like image 26
Omri Lugasi Avatar answered Oct 10 '22 01:10

Omri Lugasi