Подтвердить что ты не робот

Возможно ли обновить представление фрагмента

Я изменил 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 обновить представление фрагмента

4b9b3361

Ответ 1

Вы можете просто отсоединить и прикрепить фрагмент ниже

    Fragment currentFragment = getFragmentManager().findFragmentByTag("FRAGMENT");
    FragmentTransaction fragTransaction = getFragmentManager().beginTransaction();
    fragTransaction.detach(currentFragment);
    fragTransaction.attach(currentFragment);
    fragTransaction.commit();

Это обновит представление, и локаль изменит

Ответ 2

Вы можете создать прослушиватель, который будет вызываться при изменении локали. Затем вы удалите фрагмент и снова добавьте фрагмент. Затем ваш новый язык должен быть поднят.