在导航视图中,在文本右侧显示图标

时间:2019-01-03 10:04:14

标签: android navigation-drawer rtl-language

对不起,我的英语不好。 我在某些活动中有一个导航抽屉,我希望将每个导航视图项目的图标放置在该项目文本的右侧,并且整个项目都具有正确的重力。 因为我只在应用程序中使用波斯语,所以我无法在代码中使用“ 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" />

enter image description here

enter image description here

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

2 个答案:

答案 0 :(得分:2)

使supportsRtl为true,并在导航视图上将布局方向设置为RTL,在其他布局中将布局方向设置为LTR

答案 1 :(得分: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" />