Java Android:在语言更改后刷新当前片段
因此,我的Java Android:在语言更改后刷新当前片段,java,android,android-fragments,layout,refresh,Java,Android,Android Fragments,Layout,Refresh,因此,我的MainActivity有一个带有一组片段的导航抽屉 在导航栏的顶部,我有两个代表一种语言的标志。如果用户单击一种语言,应用程序将更改整个应用程序的语言 一切都很顺利(活动刷新、导航抽屉和所有片段都被翻译),但打开的片段没有。这意味着用户需要单击导航抽屉并再次选择片段以查看其翻译 如何刷新用户所在的当前片段 提交片段时将标记添加到片段中: fragmentManager.beginTransaction().replace(R.id.your_id, fragment, "Your_
MainActivity
有一个带有一组片段的导航抽屉
在导航栏的顶部,我有两个代表一种语言的标志。如果用户单击一种语言,应用程序将更改整个应用程序的语言
一切都很顺利(活动刷新、导航抽屉和所有片段都被翻译),但打开的片段没有。这意味着用户需要单击导航抽屉并再次选择片段以查看其翻译
如何刷新用户所在的当前片段 提交片段时将标记添加到片段中:
fragmentManager.beginTransaction().replace(R.id.your_id, fragment, "Your_Fragment_TAG").commitAllowingStateLoss();
然后,您可以分离并再次附加片段以进行刷新:
// Reload current fragment
Fragment frg = null;
frg = getSupportFragmentManager().findFragmentByTag("Your_Fragment_TAG");
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.detach(frg);
ft.attach(frg);
ft.commit();
谢谢你的帖子。我看过这段代码,但在运行时不起作用。因为
你的_Fragment_标记
不知道我是否正确?是的,因为你需要在调用FindFragmentByTag之前设置标记是否还有另一段代码@runtime有效?或者我有义务向用户通知这一点(作为祝酒词)或者重新启动整个应用程序吗?我的选项是什么?是否以编程方式更改字符串?或者您更改了配置区域设置?配置区域设置方法(使用另一个包含strings.xml的values xx文件夹)