Backstack с несколькими фрагментами на макет - PullRequest
1 голос
/ 28 июля 2011

Я хочу создать стек из нескольких фрагментов, включенных в линейный макет.Чтобы поместить множество фрагментов в активность, я использую следующий код (R.id.content is LinearLayout):

private void pushToBackStack(final Fragment... fragments) {
    final FragmentManager fm = getSupportFragmentManager();

    final FragmentTransaction ft = fm.beginTransaction();

    for (int i = 0; i < fragments.length; i++) {

        if (i == 0) {
            ft.replace(R.id.content, fragments[i]);
        } else {
            ft.add(R.id.content, fragments[i]);
        }
    }
    ft.addToBackStack(null);
    ft.commit();
}

, когда я звоню

pushToBackStack(f1, f2);
pushToBackStack(f3, f4);
pushToBackStack(f5, f6);

, есть f3, f5 и f6отображается на экране, и после нажатия кнопки Назад отображаются f2, f3, f4.

Ожидаемое поведение: f5, f6 -> Назад -> f3, f4 -> Назад -> f1, f2

1 Ответ

1 голос
/ 28 июля 2011

Вы не можете звонить таким образом, вам нужно будет набрать commit за replace или add

...