【问题标题】:Fragments. ActionBar Back navigation片段。 ActionBar 返回导航
【发布时间】:2016-01-24 16:20:30
【问题描述】:

我有一个活动和三个片段。当我从一个片段转到另一个片段时,我将它的事务写入 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);
    }

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

【问题讨论】:

    标签: android navigation android-actionbar-compat fragment-backstack


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多