Ящик LTR Элемент меню навигации в Android - PullRequest
0 голосов
/ 22 января 2019

Привет. Я хочу установить LTR в меню «Мои пункты» на панели навигации.Английский алфавит слева и арабский алфавит справа, я хочу, чтобы все они были слева

my drawer navigation menu my drawer navigation menu

в манифесте .xml я установил android:supportsRtl="false", и он не работает, мои коды манифеста

    package="alla.brooska.com.alla">
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="false"
        android:theme="@style/AppTheme">
        <activity android:name=".AboutActivity"></activity>
        <activity
            android:name=".Splash"
            android:label="@string/app_name"
            android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
            <intent-filter>
                <category android:name="android.intent.category.LAUNCHER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:theme="@style/AppTheme.NoActionBar"></activity>

    </application>

</manifest>

я пробую его в макете ящика навигации, и он не работает `android: layoutDirection =" rtl "

my activity_main.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"
    android:layoutDirection="ltr"
    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"
        android:layoutDirection="ltr"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>

пункты моего меню навигации

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:textAlignment="viewStart"
    android:textDirection="ltr"

    tools:showIn="navigation_view">

    <group android:checkableBehavior="single">

        <item
            android:textAlignment="viewStart"
            android:textDirection="ltr"
            android:id="@+id/nav_setting"
            android:icon="@drawable/ic_settings_black_24dp"
            android:title="settings" />
        <item
            android:textAlignment="viewStart"
            android:textDirection="ltr"
            android:id="@+id/nav_contact_us"
            android:icon="@drawable/ic_menu_gallery"
            android:title="contact us" />
        <item
            android:textAlignment="viewStart"
            android:textDirection="ltr"
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="support us" />
        <item
            android:id="@+id/nav_about"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="about us" />

    </group>

    <item android:title="@string/languages">
        <menu>
            <item
                android:textAlignment="viewStart"
                android:textDirection="ltr"
                android:id="@+id/navkurdi"
                android:icon="@drawable/ic_language_black_24dp"
                android:title="کوردی" />
            <item
                android:textAlignment="viewStart"
                android:textDirection="ltr"
                android:icon="@drawable/ic_language_black_24dp"
                android:title="English" />
            <item
                android:textAlignment="viewStart"
                android:textDirection="ltr"
                android:icon="@drawable/ic_language_black_24dp"
                android:title="فارسی" />

        </menu>
    </item>

</menu>

1 Ответ

0 голосов
/ 22 января 2019

Установите TextView свойства:

android:textAlignment="viewStart"

ИЛИ

android:textDirection="ltr"

При использовании этих свойств всегда начинается текст сслева направо.

Я использую для этого, включая макет в navigationView, которым я легко могу управлять для локализации.

Как это

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:layout_marginEnd="-65dp"
        android:layout_marginRight="-65dp"
        android:fitsSystemWindows="true">

        <include
            layout="@layout/nav_header_main_navigation"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </android.support.design.widget.NavigationView>

nav_header_main_navigation

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/app_gray"
    android:gravity="bottom">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <RelativeLayout
                android:id="@+id/rlTop"
                android:layout_width="match_parent"
                android:layout_height="88dp"
                android:layout_alignParentTop="true"
                android:background="@color/appYellow">

                <TextView
                    android:id="@+id/tvName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_marginBottom="24dp"
                    android:layout_marginEnd="30dp"
                    android:layout_marginLeft="24dp"
                    android:layout_marginRight="30dp"
                    android:layout_marginStart="24dp"
                    android:ellipsize="end"
                    android:includeFontPadding="false"
                    android:maxEms="14"
                    android:maxLines="2"
                    android:textColor="@color/app_gray"
                    android:textSize="15sp" />

                <RelativeLayout
                    android:id="@+id/rlBack"
                    android:layout_width="30dp"
                    android:layout_height="20dp"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:layout_marginBottom="20dp"
                    android:clickable="true">
                    <ImageView
                        android:id="@+id/ivBack"
                        android:layout_width="10dp"
                        android:layout_height="20dp"
                        android:adjustViewBounds="true"
                        android:clickable="true"
                        android:scaleType="centerCrop"
                        android:src="@drawable/back_icon_black" />
                </RelativeLayout>
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/rlBottom"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@id/rlTop"
                android:background="@color/app_gray">

                <RelativeLayout
                    android:id="@+id/rlProfile"
                    android:layout_width="match_parent"
                    android:layout_height="48dp"
                    android:layout_marginTop="10dp">

                    <ImageView
                        android:id="@+id/ivProfile"
                        android:layout_width="19dp"
                        android:layout_height="19dp"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="24dp"
                        android:layout_marginStart="24dp"
                        android:src="@drawable/icon_nav_profile" />

                    <TextView
                        android:id="@+id/tvProfile"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="16dp"
                        android:layout_marginStart="16dp"
                        android:layout_toEndOf="@id/ivProfile"
                        android:layout_toRightOf="@id/ivProfile"
                        android:includeFontPadding="false"
                        android:paddingBottom="1dp"
                        android:paddingTop="1dp"
                        android:text="@string/profile"
                        android:textAlignment="viewStart"
                        android:textColor="@color/white"
                        android:textDirection="locale"
                        android:textSize="15sp" />
                </RelativeLayout>
            </RelativeLayout>
        </RelativeLayout>
</RelativeLayout>

это пример того, как вы можете легко избегать меню и использовать обычные макеты.

Здесь приведены дополнительные ответы относительно приведенного выше примера URL

...