【问题标题】:Remove single fragment from backstack Android从 backstack Android 中删除单个片段
【发布时间】:2016-07-10 02:05:50
【问题描述】:

当我有多个片段时,我正在努力删除我动态添加的单个片段。

例如: 主要活动 膨胀 FragA 膨胀 FragB 膨胀 FragC

现在我该如何删除片段 A?

使用 popBackStack 杀死所有三个,getSupportFragmentManager().beginTransaction().remove(TAG).commit(); 似乎也做同样的事情

您打算如何正确执行此操作?我试图在标签上保持多个 backstacks 持久性

【问题讨论】:

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


    【解决方案1】:

    试试这个...

    获取当前片段标题并检查片段 A 与否。

    获取当前片段标题使用getTitle()方法并检查

      if(getTitle().toString.equals(fragment A){
             // do 
        }else{
             // do 
        }
    

    【讨论】:

      【解决方案2】:

      你能试试这个吗..

      例如。使用片段名称作为标签:

      FragmentA fragment = new FragmentA();
      String backStateName = fragment.getClass().getName();
      

      添加到后台堆栈:

      FragmentTransaction ft = manager.beginTransaction();
      ft.replace(R.id.content_frame, fragment);
      ft.addToBackStack(backStateName);
      ft.commit();
      

      弹出:

      getSupportFragmentManager().popBackStackImmediate (backStateName, 0); 
      

      这应该只弹出带有特定标签的片段。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-08
        • 2012-12-30
        相关资源
        最近更新 更多