1

我有一个 main Activity,其中包含我的 app 大约 90% 的内容Fragments。在用户登录后,我在主onCreate()活动上添加了主要片段。

问题是当我在SettingFragment(这是一个PreferenceFragment)中更改应用程序的语言环境时,我必须重新创建主片段,Activity以便onCreate()它再次加载主片段,这是不可取的(我想继续使用新语言进行设置)。

处理这种情况的最佳方法是什么?我曾想过检查SettingFragment可见性,FragmentManager但在娱乐时它找不到 settingFragment 并且它总是返回 null。另一种方法可能是写入sharedPreferences以检查 MainFragment 是否已加载,但我不确定写入或读取的最佳状态是什么。

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 回答