2017-05-26 15 views
1

タイトルにはすべてのことが書かれています。私はFacebookのI18nManagerを使ってアプリケーションのデフォルトレイアウトをRTLに設定する方法をいくつか見つけましたが、2回目のアプリ起動時にしか行いません。LTRデバイスで強制的にRTLを実行する

コード例:I18nManager.forceRTL(true)

アプリケーション自体がアラビア語であるので、私は、ユーザーに言語を変更する機能を与えたくありません。私はどこでも検索しましたが、RTLをサポートする方法についてはすべて話し、実際にはデフォルトのレイアウトとして使用しません。

I18nManagerでこれを達成する方法はありますか、またはネイティブコードにいくつかの変更を加える必要がありますか?

getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); 

とあなたがマニフェストでTrueにsupportRtlが等しい持っていることを確認してください。

答えて

0

は、あなたの活動の全ての(スーパーやsetContentView前)のonCreateメソッドの中で最も先頭にこのコード行を追加します。

+0

何かインポートしますか? – Raymond

+0

no..happily輸入するものは何もありませんが、あなたにアンドロイドがあることを確認してください:supportsRtl = "true" in manifest – Parazok

2

最初にこのようなマニフェストでrtlサポートを追加します。

<application 
     android:name=".application.SampleApplication" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
</application> 

次に、あなたのランチャーアクティビティで、oncreateに次のコードを追加します。

Locale locale = new Locale("ar"); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
getApplicationContext().getResources().updateConfiguration(config, getApplicationContext().getResources().getDisplayMetrics()); 
関連する問題