3

レイアウトをリロードせずにロケール/言語を変更するにはどうすればよいですか? ロケールを動的に変更するには、以下を実行する必要があります

mLocale = new Locale(LOCALE_ARABIC);
Locale.setDefault(mLocale);
Configuration config = new Configuration();
config.locale = mLocale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
MainActivity.this.setContentView(R.layout.activity_main);

しかし、私の場合、フラグメント内にフラグメントがあります。私のアプリ構造にActivityは 8 つの置換可能なフラグメントがあり、各フラグメントには 4 ~ 5 つの置換可能な子フラグメントがあります。

また、メイン アクティビティの言語を変更するボタンがあります。そのため、ユーザーが言語を変更したときに特定のフラグメントをロードすることはほとんど不可能です。

上記のケースでロケールを変更する最善の方法を教えてください

4

0 に答える 0