将工具栏图标从右到左对齐?

14
在我的应用程序中,我已经实现了一些语言,包括从右到左开始的阿拉伯语。我想将工具栏中的所有图标对齐为RIGHT_TO_LEFT。我尝试过layout_gravity="right"gravity="right",但什么都没有发生。我的工具栏代码:
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/primary_color"
    app:popupTheme="@style/Theme.AppCompat.Light"/>

这是我想要的:


3个回答

23

从Android 4.2(API级别 17)开始,官方支持从右至左的布局方向,因此只有在您的最低SDK级别为17时才能使用:

1) 在您的AndroidManifest文件中添加android:supportsRtl="true"属性,以支持从右至左的布局方向。

2) 其次,在您的活动的onCreate()方法中添加以下代码:

if (getWindow().getDecorView().getLayoutDirection() == View.LAYOUT_DIRECTION_LTR){
            getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
        }

如果系统使用相应的语言,这将使您的所有内容从右到左排列。另外,请确保在设置填充时使用“start / end”而不是“left / right”,以确保所有元素对齐正确。

有关官方支持公告的更多信息: http://android-developers.blogspot.be/2013/03/native-rtl-support-in-android-42.html


谢谢,那个方法可行。不过所需的API限制了我不能使用它,因为许多设备仍然使用较低的API。还点了赞 ;) - Caffe Latte
对于工具栏,只有在重新启动应用程序后才能生效。我已经在其他视图中使用了相同的方法,而且不需要重新启动应用程序就可以生效。 - Balwinder SIngh

5
在AndroidManifest文件中添加android:supportsRtl="true"属性。然后在工具栏标签下添加以下行:
android:layoutDirection="rtl"

1

对于那些想要将汉堡图标放在工具栏中,且只显示图标的人,可以使用以下代码:

android:layoutDirection="rtl"

在工具栏标签中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接