【问题标题】:Backstack Issue in fragment and activity片段和活动中的 Backstack 问题
【发布时间】:2018-08-03 07:03:49
【问题描述】:

假设我总共有 7 个活动,比如 A、B、C、D、E、F、G,在 Activity AI 中单击第 4 个片段后有 4 个片段我正在启动 Activity B,然后是 Activity C、D、E、F . 来到活动 F 之后,我想导航到活动 A 的 2 个片段,但我想清除所有回栈直到活动 A 的第二个片段,单击后退按钮后,活动 A 的第一个片段将显示,因为我正在添加所有片段backstack 我将如何解决这个问题。请帮帮我

在 Activity F 中调用第二个片段的代码

SeconFragment fragment = new SeconFragment();
            addFragmentToActivity(getFragmentManager(), fragment, R.id.fragment_container_top,"secondfagment");

  public void addFragmentToActivity(@NonNull FragmentManager fragmentManager,
                                             @NonNull Fragment fragment, int frameId,String backstacklabel) {
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(frameId, fragment,backstacklabel);
        transaction.commit();
    }

【问题讨论】:

  • 将您的代码发布到您调用活动第二个片段的位置
  • @quicklearnerI 我更新有问题的代码。请检查
  • @AkshayPadalkar 检查下面的答案

标签: android android-fragments back-stack fragment-backstack fragmentmanager


【解决方案1】:

你的问题有点混乱,但这是得到了什么

FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {  
    Fragment SecondFrag= fm .findFragmentByTag("yourFragmentTag");
     if(SecondFrag !=null){
        return;
       }
     else{
     fm.popBackStack();
    }
}

在代码fm .findFragmentByTag("yourFragmentTag") yourFragmentTag 替换为您不想从backstack 中删除的fragmentTag

希望这能解决你的问题

【讨论】:

  • 我试试这个,但 fm .findFragmentByTag("yourFragmentTag") 总是给我 null。我检查了 fm.getFragments() 它给了我最后一个活动片段的列表而不是 backstack 片段列表。
【解决方案2】:

使用 Intent 标志 FLAG_ACTIVITY_CLEAR_TOP 启动您的启动 Activity A,然后检查第一个和第二个片段实例是否仍然存在。如果没有按照AddToBackStack() 的顺序重新启动您的片段

Fragment frag = fm.findFragmentByTag("fragmentTag");
  if(frag!=null){
     loadFragments(); // code to launch fragments.
    }
  else{
  fm.popBackStack();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    相关资源
    最近更新 更多