0

我有一个活动和三个片段。当我从一个片段转到另一个片段时,我将它的事务写入 backStack:

transaction.addToBackStack(null);

当我按下 ActionBar 上的后退箭头并转到箭头丢失的第一个片段时,它是正确的。

 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);
    }

但是,如果我按下系统后退按钮并转到后箭头停留的第一个片段,这是错误的。

4

1 回答 1

0

当我像这样覆盖 Activity 中的系统后退按钮时

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

当我从第三个片段转到第二个片段时,后退箭头丢失。但是当从第二个片段过渡到第一个片段时,箭头消失是必要的。

于 2016-01-24T16:46:43.663 回答