1

对不起,我的英语不好。我在某些活动中有一个导航抽屉,我希望将每个导航视图项的图标放置在该项目文本的右侧,并且整个项目获得正确的重力。因为我只在我的应用程序中使用了波斯语,所以我不能在我的代码中使用“supportsRtl”,如果我使用,当我将设备语言设置为任何 rtl 语言时会看起来很奇怪。

我想也许我可以通过为导航视图设置自定义布局来解决这个问题,但我正在寻找一种更简单的方法。这是我的 NavigationView XML 代码:

<android.support.design.widget.NavigationView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:menu="@menu/menu"
    android:layout_gravity="end" />

在此处输入图像描述

在此处输入图像描述

编辑:
layoutDirection 是一个很好的答案,但我用于
drawerLayout.openDrawer(GravityCompat.START);
打开导航抽屉。现在,如果设备语言是 rtl 语言,这会使应用程序崩溃。

4

2 回答 2

2

使 supportRtl 为 true 并将布局方向设置为导航视图上的 RTL 和其他布局中的 LTR

于 2019-01-03T10:26:40.400 回答
0

只需添加android:layoutDirection="rtl"到您的NavigationView,如下所示:

<android.support.design.widget.NavigationView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     app:menu="@menu/menu"
     android:layoutDirection="rtl"
     android:layout_gravity="end" /> 
于 2019-01-03T10:33:21.717 回答