обновить вид фрагмента в моем случае - PullRequest
1 голос
/ 28 марта 2012

Я бы хотел обновить представление последнего фрагмента в backstack. (Все мои фрагменты добавлены в backstack)

То, что я пробовал, это:

Сначала , найдите последний фрагмент из backstack:

Fragment currentFragment = null;

try {
    currentFragment = fragmentManager.findFragmentById(R.id.fragment_placeholder);
    return currentFragment;
} catch (NullPointerException e) {
    return currentFragment;
}

Во-вторых , извлеките последний фрагмент из backstack:

fragmentManager.popBackStack(); //did I do wrong here??

наконец , снова добавьте фрагмент в backstack:

fragmentTransaction.replace(R.id.fragment_placeholder, currentFragment, fragmentName);

fragmentTransaction.addToBackStack(null);

fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.commit();

Но когда я запускаю описанную выше процедуру, я получаю пустую страницу. Кажется, отображаемый (последний) фрагмент удаляется, но не добавляется обратно. Зачем? Как обновить вид фрагмента? (Я делаю это, потому что моя локаль изменена, и мне нужно обновить отображаемый фрагмент)

============ 2-й способ, которым я пытался ==============

После того, как я получил последний фрагмент currentFragment, я также попытался вызвать onCreateView() напрямую, чтобы обновить представление:

currentFrag.onCreateView(getLayoutInflater(), null, null);

но я получил NullPointerException .

...