在ViewPager中以编程方式更改语言

时间:2018-11-29 16:59:44

标签: android android-viewpager

显然,在ViewPager中切换选项卡会更改使用Locale.setDefaultgetActivity().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();

0 个答案:

没有答案