Возможно ли обновить представление фрагмента
Я изменил locale
моего приложения программно, например:
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("cn");
res.updateConfiguration(conf, dm);
После этого я хотел бы обновить отображаемое в настоящее время представление фрагмента для отображения с новыми языковыми настройками.
Итак, я сначала получаю текущий фрагмент (последний из backstack
):
BackStackEntry latestEntry=fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount()-1);
String str=latestEntry.getName();
Fragment fragment=fragMgr.findFragmentByTag(str);
После того, как я получу отображаемый фрагмент, я хотел бы обновить его представление, но как это сделать? Возможно ли в Android обновить представление фрагмента
Ответы
Ответ 1
Вы можете просто отсоединить и прикрепить фрагмент ниже
Fragment currentFragment = getFragmentManager().findFragmentByTag("FRAGMENT");
FragmentTransaction fragTransaction = getFragmentManager().beginTransaction();
fragTransaction.detach(currentFragment);
fragTransaction.attach(currentFragment);
fragTransaction.commit();
Это обновит представление, и локаль изменит
Ответ 2
Вы можете создать прослушиватель, который будет вызываться при изменении локали. Затем вы удалите фрагмент и снова добавьте фрагмент. Затем ваш новый язык должен быть поднят.