右から左への特定の言語用の Android アプリを作成しています。そして、ActionBarSherlock (互換性のある Android アクション バー ライブラリ) を使用しています。
私がまさに望んでいるのは、ユーザーがデフォルトのロケールをRTL言語に設定していなくても、アクションバーの方向をRTLに変更する方法です。
標準の Android Action Bar についても誰かがアイデアを持っている場合、それは貴重であり、共有してください。
ありがとう
6 に答える
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 をサポートする場合にのみレイアウトが変更されるようにします。
それが役立つことを願っています。
これを使用します。rtl からレイアウトを作成しますが、これは xml の親ルートにあります
android:layoutDirection="rtl"
android:textDirection="rtl"
私たちは、プログラミングにおける強力なルールを信じなければなりません:
ツールを知っていれば、すべてが可能になります。
したがって、今からこのライブラリを使用して、アクションバーを真にRTL 化できます: https://github.com/semsamot/ActionBarRTLizer
もちろんAPI Level 7+にも対応しています。
鼻くそは正しいです。あなたが言及した「Nabz Bazar」アプリは、Androidのすべてのバージョンで右に揃うわけではありません。ここでわかるように、 ABS は Android 4.0 以降では実際には何も実行せず、そのアプリのスクリーンショットは 4.2 Android のものです。