1

Activityアプリの約 90% を含むメインがありますFragments。ユーザーがログイン アクティビティにログインした後onCreate()、マスター アクティビティのメイン フラグメントを追加します。

問題は、SettingFragment(これはPreferenceFragment)アプリのロケールを変更するときです。メインを再作成する必要があるActivityためonCreate()、メインフラグメントを再度ロードしますが、これは望ましくありません(新しい言語で設定したままにしたい)。

このような状況を処理する最善の方法は何ですか? SettingFragment私は可視性をチェックすることを考えましFragmentManagerたが、レクリエーションではsettingFragmentを見つけることができず、常にnullを返します。MainFragment がロードされているかどうかを確認する別の方法があるかもしれませsharedPreferencesんが、書き込みまたは読み取りに最適な状態が何であるかはわかりません。

4

1 に答える 1

0

アクティビティに追加android:configChanges="locale"してから、フラグメントで UI を上書きして更新する必要があります。

@Override
public void onConfigurationChanged(Configuration newConfig) {
  // refresh your views here
  super.onConfigurationChanged(newConfig);
}
于 2016-02-04T09:17:56.513 に答える