Понимание стека фрагментов

1

У меня есть панель действий (actionbarsherlock) с навигацией на вкладке, и у меня есть несколько элементов действия. Один из моих элементов действия отображает ListFragment, и вот как я его называю:

    case R.id.menuitem_info:
        // Create new fragment and transaction
        SherlockListFragment aboutListFragment = new AboutListFragment();
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

        // Replace whatever is in the fragment_container view with this fragment,
        // and add the transaction to the back stack
        ft.replace(R.id.root, aboutListFragment);
        ft.addToBackStack(null);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);

        // Commit the transaction
        ft.commit();
        return true;

Моя проблема в том, что когда я нажимаю кнопку "Назад", я получаю исключение IllegalArgumentException. Я не уверен, как удалить фрагмент из представления и отобразить предыдущий вид?

Вот мой код кнопки:

    case android.R.id.home:
        FragmentManager fm = getSupportFragmentManager();
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStack();
        }
        return true;

Мы ценим любые предложения!

Теги:
android-fragments
android-actionbar
actionbarsherlock

1 ответ

3

Я сделал следующее в случае android.R.id.home:



    case android.R.id.home:
        FragmentManager fm = getSupportFragmentManager();
        if(fm.getBackStackEntryCount()>0){
            onBackPressed();
        }
        return true;

Надеюсь, это поможет вам, потому что я работаю как шарм

Ещё вопросы

Сообщество Overcoder
Наверх
Меню