【问题标题】:Right to left menu items Android从右到左的菜单项 Android
【发布时间】:2016-04-09 12:58:27
【问题描述】:

我有一个幻灯片菜单作为图片一。我需要将其项目标题从右到左对齐,就像第二张幻灯片一样。我试过gravity=right,但没有用。

这是我的代码:

<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>

所需的菜单将是:

【问题讨论】:

  • 这两张照片在我看来是一样的吗?
  • 对于 RTL 语言,您应该使用“start”和“end”而不是“left”和“right”
  • 您的抽屉的布局 XML 是什么样的?
  • 我认为在使用菜单资源时没有办法影响布局。您可能需要像通常那样定义布局并自己处理点击。查看有关构建抽屉的 Android 开发人员培训:developer.android.com/training/implementing-navigation/…
  • @pooya 谢谢 pooya,我应该将此属性添加到哪个元素,我添加到组和项目以及抽屉布局(重力=结束)但没有工作

标签: android android-layout android-xml


【解决方案1】:

要创建从右到左的菜单,您只需添加 android:layoutDirection="rtl" 到菜单标签


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>

你可以在这里看到源代码:

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

api 17 及更高版本

【讨论】:

【解决方案2】:

如果您要更改位于 DrawerLayout 内的菜单方向,只需添加

android:layoutDirection="rtl"

到您的 NavigationView 元素。输出应该是这样的:

<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" />

【讨论】:

  • 我只有一个菜单,没有导航视图,我该如何设置?
【解决方案3】:

应将 layoutDirection 属性添加到父活动布局 XML:

android:layoutDirection="rtl"

【讨论】:

    【解决方案4】:

    在 res>值>样式 添加波纹管项目: rtl

    然后在工具栏或导航菜单 XML 标记中添加: 安卓:textDirection="rtl" android:layoutDirection="ltr"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多