【问题标题】:how to remove fragment after transition to next fragment过渡到下一个片段后如何删除片段
【发布时间】:2018-05-22 16:15:40
【问题描述】:

我使用片段如下:

 img_home.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ft = fragmentManager.beginTransaction();
            ft.replace(R.id.freamlayout,fragment_home);
            ft.remove(fragment_setting);
            ft.commit();
        }
    });

    img_setting.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ft = fragmentManager.beginTransaction();
            ft.remove(fragment_home);
            ft.replace(R.id.freamlayout,fragment_setting);
            ft.addToBackStack(null);
            ft.commit();
        }
    });

但是当过渡到片段 2 时,保持片段 1 怎么解决??

img1:

img2:

【问题讨论】:

标签: android fragment


【解决方案1】:

你只需要调用 replace() 即可:

删除添加的片段,并添加您传递的新片段作为第二个参数。

见: FragmentTransaction replace

【讨论】:

    【解决方案2】:

    正如我在documentation 中看到的fragmentTransaction.replace()

    替换已添加到容器中的现有片段。这是 本质上与为所有当前调用 remove(Fragment) 相同 添加了使用相同 containerViewId 添加的片段,然后 add(int, Fragment, String) 与此处给出的参数相同。

    检查

    • 确保您使用的是 v4 片段,因为应用程序 fragments 在 android P 中已被弃用。

    最简单的方法

    如果对您不起作用,请将背景放在两个片段布局的父节点上。所以旧片段不会出现在这个后面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 1970-01-01
      • 2014-03-22
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多