显然,在ViewPager中切换选项卡会更改使用Locale.setDefault
和getActivity().getResources().updateConfiguration
选择的语言。
我已经用android:screenOrientation="portrait"
修复了清单中的旋转问题,并且每次选择每个标签时都设法调用了我的方法(使用OnPageChangeListener
)。
我还使用了ViewPager setOffscreenPageLimit
方法来避免随后调用任何选项卡(6个选项卡和onCreateView
)的setOffscreenPageLimit(5)
。在第一个onCreateView
之后(在应用程序启动时或在popBackStacks之后,直到viewpager容器下的片段为第一个片段之后),左3个选项卡(不是其他)的视图语言正确,但移动了一段时间后它会改变回到设备默认值。
我在android 6.0上。
这是语言的改变
Locale.setDefault(selectedLocale);
config.locale = selectedLocale;
getActivity().getBaseContext().getResources().updateConfiguration(config, getActivity().getBaseContext().getResources().getDisplayMetrics());
getActivity().getResources().updateConfiguration(config, getActivity().getResources().getDisplayMetrics());
我正在刷新Viewpager片段
while (fm.getBackStackEntryCount()>1) {
fm.popBackStackImmediate();
}
fm.executePendingTransactions();
ViewPagerContainer fragment = new ViewPagerContainer ();
fm.beginTransaction()
.add(R.id.pages_container, fragment, ViewPagerContainer .TAG)
.addToBackStack("ViewPagerContainer")
.commit();