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

Ali*_*aaa 18 android actionbarsherlock android-actionbar

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

Sim*_*mon 63

从Android API Level 17+开始,它本身支持RTL.要强制整个布局为RTL(包括ActionBar),请执行以下操作.

编辑AndroidManifest.xml并添加android:supportsRtl="true"<application>标记中,然后将以下行添加到Activities的onCreate()方法的顶部,forceRTLIfSupported();然后将follow函数插入到Activity中.

@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);
    }
}
Run Code Online (Sandbox Code Playgroud)

当然这只对调试有帮助.使用View.LAYOUT_DIRECTION_LOCALE的产品构建,所以当用户选择系统位置/语言即locale支持RTL布局只改变.

希望有所帮助.

  • 不幸的是,它是 RTL 所有布局。我只想更改操作栏方向而不是所有应用程序。我可以做什么? (2认同)

Ama*_*onz 6

使用这个,它将从 rtl 进行布局,但它位于 xml 的父根中

    android:layoutDirection="rtl"
    android:textDirection="rtl"
Run Code Online (Sandbox Code Playgroud)

  • 这很好,但是它不支持系统创建的视图,例如“本机”ActionBar,它是在您扩展自己的布局之前创建的。上面的代码片段仅影响您正在膨胀的布局。 (2认同)