将操作栏方向更改为从右到左

我正在创build一个从右到左的特定语言的Android应用程序。 而我正在使用ActionBarSherlock(兼容的Android操作栏库)。
我真正想要的是如何将操作栏的方向更改为RTL,即使用户没有将默认的Locale设置为RTL语言。
如果任何人有一个想法,即使是标准的安卓操作栏,这是有价值的,可能会帮助请分享。
谢谢

从Android API级别17+起,它本身支持RTL。 要强制你的整个布局是包括ActionBar在内的RTL,请执行以下操作。

编辑你的AndroidManifest.xml文件,并在你的<application>标签中添加android:supportsRtl="true" ,然后将下面的代码行添加到你的Activity的onCreate()方法的forceRTLIfSupported(); 然后将后续function插入到您的活动中。

 @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) private void forceRTLIfSupported() { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); } } 

当然这只对debugging很有帮助。 对于生产版本使用View.LAYOUT_DIRECTION_LOCALE ,所以只有当用户select系统位置/语言(即语言环境)支持RTL时,才会更改布局。

希望有所帮助。

我们必须相信一个强大的编程规则:

一切都将是可能的,当你知道你的工具。

所以,从现在开始你可以使用这个库来真正地RTLize你的actionbars : https : //github.com/semsamot/ActionBarRTLizer

当然,它与API Level 7+兼容。

布格是对的。 您提到的“Nabz Bazar”应用程序在每个版本的Android上都没有alignment。 正如你可以看到ABS在Android 4.0或更新版本上没有做任何事情,该应用程序的屏幕截图是在4.2的Android上。

我很确定你不能做你所要求的。 ActionBar模式是非常具体的,支持它的库只支持定义的模式(左上angular有图标,右侧标题和动作button)。

更改testing与更改应用程序中的语言环境和文本一样简单(正如您已经提到的那样)。

由于支持标准ActionBar模式的库不支持更改ActionBar中元素的位置,因为您所描述的不是受支持的UI模式。

我想你应该离开AB。 没有必要切换顺序,因为没有左右方向 – 改变这将是非常刺激你的用户。

底线,你将无法与现有的图书馆 – 而你可能不应该这样做。

使用这个,它将从rtl做布局,但在你的XML的父根

  android:layoutDirection="rtl" android:textDirection="rtl"