在波斯语、希伯来语设备的导航抽屉左侧放置菜单图标的最佳做法?

Best practice to place menu Icons on the left side of the navigation drawer in Persian,Hebrew devices?

我想要一个从右侧打开的导航抽屉。 (我设法使用 LAYOUT_GRAVITY="END" 做到了这一点)。 现在我希望所有菜单项都从右边开始,它们的图标也从右边开始。

为此,我将 (SUPPORTSRTL="TRUE") 添加到清单中,这也解决了问题。但问题是:

为了解决这个问题,我必须将 (LAYOUTDIRECTION="LTR") 设置为我的每个活动的布局的根元素。这解决了问题,现在一切都在我想要的位置,但是这似乎不是将这行代码添加到我将添加到我的应用程序的每个 activity 的根元素的可持续解决方案。 你能告诉我这是否是最好的方法吗?

我发现其他相同主题的问题没有被接受的正确答案。

这行代码应该可以解决您的问题

    ViewCompat.setLayoutDirection(drawer, ViewCompat.LAYOUT_DIRECTION_RTL);

drawer 是对您的 DrawerLayout 的引用。

将 RTL 布局强制用于活动的另一种方法是使用样式 xml。我会这样做:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>

<style name="ShaliRTL" parent="AppTheme">
    <item name="android:layoutDirection">rtl</item>
</style>

</resources>

然后在 android 清单中将此新样式 (ShaliRTL) 应用到您的特定 activity:

        <activity
        android:name=".YourActivity"
        android:label="@string/title_activity_settings"
        android:theme="@style/ShaliRTL"
        android:screenOrientation="fullSensor" />

祝你好运。