Фрагменты. Панель действий Назад

У меня есть одно действие и три фрагмента. Когда я перехожу от одного фрагмента к другому, я записываю транзакцию в backStack:

transaction.addToBackStack(null);

Когда я нажимаю стрелку назад на панели действий и перехожу к первому фрагменту, эта стрелка теряется, и это правильно.

 switch (item.getItemId()) {
        case android.R.id.home:

           FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
            OfficialNameFragment offName = new OfficialNameFragment();
            fragmentTransaction.remove(offName);
            fragmentTransaction.commit();
            getFragmentManager().popBackStack();

((AppCompatActivity)getActivity()).getSupportActionBar() .setDisplayHomeAsUpEnabled(false);

            return true;

        default:
            return super.onOptionsItemSelected(item);
    }

Но если я нажму системную кнопку «Назад» и перейду к первому фрагменту, эта стрелка «назад» останется, и это неправильно.


person Владимир Нагорный    schedule 24.01.2016    source источник


Ответы (1)


когда я переопределяю кнопку возврата системы в действии, как это

@Override
public void onBackPressed(){
    super.onBackPressed();
    getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}

стрелка назад теряется, когда я перехожу от третьего ко второму фрагменту. Но нужно, чтобы стрелка пропадала при переходе от второго фрагмента к первому.

person Владимир Нагорный    schedule 24.01.2016