如何从片段实现本地化?

How to implement localization from fragment?

我正在将应用程序语言英语切换为阿拉伯语,反之亦然。 下面的代码有效,它加载 values-ar\strings.xml 并且语言从英语更改为阿拉伯语。应用程序的 UI 元素不会根据更新后的语言设置 RTL 对齐方式 立即更改。只有在关闭并重新打开应用程序时才会反映更改。

Locale locale = new Locale("ar");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getActivity().getResources().updateConfiguration(config, getActivity().getResources().getDisplayMetrics());
getActivity().recreate()

在清单文件中添加这一行。

android:configChanges="locale|orientation"

成功了,将它添加到包含片段的 activity 中并调用它而不是 getActivity().recreate()

public void restartActivity() {
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}