19

右から左への特定の言語用の Android アプリを作成しています。そして、ActionBarSherlock (互換性のある Android アクション バー ライブラリ) を使用しています。
私がまさに望んでいるのは、ユーザーがデフォルトのロケールをRTL言語に設定していなくても、アクションバーの方向をRTLに変更する方法です。
標準の Android Action Bar についても誰かがアイデアを持っている場合、それは貴重であり、共有してください。
ありがとう

4

6 に答える 6

65

Android API レベル 17 以降から、RTL をネイティブにサポートします。ActionBar を含むレイアウト全体を強制的に RTL にするには、次の手順を実行します。

AndroidManifest.xml を編集android:supportsRtl="true"して<application>タグに追加し、次の行をアクティビティの onCreate() メソッドの先頭に追加してからforceRTLIfSupported();、follow 関数をアクティビティに挿入します。

@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);
    }
}

もちろん、これはデバッグにのみ役立ちます。View.LAYOUT_DIRECTION_LOCALE本番ビルドに使用して、ユーザーが選択したシステムの場所/言語、別名ロケールが RTL をサポートする場合にのみレイアウトが変更されるようにします。

それが役立つことを願っています。

于 2013-07-16T17:18:45.480 に答える
5

これを使用します。rtl からレイアウトを作成しますが、これは xml の親ルートにあります

    android:layoutDirection="rtl"
    android:textDirection="rtl"
于 2017-07-30T12:36:48.757 に答える
4

私たちは、プログラミングにおける強力なルールを信じなければなりません:

ツールを知っていれば、すべてが可能になります。

したがって、今からこのライブラリを使用して、アクションバーを真にRTL 化できます: https://github.com/semsamot/ActionBarRTLizer

もちろんAPI Level 7+にも対応しています。

于 2014-08-22T13:17:24.840 に答える
2

鼻くそは正しいです。あなたが言及した「Nabz Bazar」アプリは、Androidのすべてのバージョンで右に揃うわけではありません。ここでわかるように、 ABS は Android 4.0 以降では実際には何も実行せず、そのアプリのスクリーンショットは 4.2 Android のものです。

于 2013-09-09T10:38:51.653 に答える