关闭碎片的正确方法

Jua*_*ana 3 android android-fragments

这个问题有两个部分。

假设我们有一个Activity,然后有两个片段:一个ListFragment和一个Fragment(当您从ListFragment中单击一个项目时将显示它们)。

第1部分

我应该在哪里关闭片段?我的意思是从设计的角度来看是好的。我看到两种选择:一种是在片段中声明一个接口,然后由活动来实现它,我们将其称为closeFragment()。这将是一种从片段到活动进行通信的方式,如开发站点中所示。另一个可能很简单,它调用getActivity()。getSupportFragmentManager()并使用管理器将其关闭。

第2部分

我知道如何创建片段并将其替换,因为它位于开发站点上,但是我对关闭片段存有疑问。我实际上应该如何关闭它?以下代码是否正确?假设该片段已添加到BackStack。

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
getSupportFragmentManager().popBackStack();
transaction.remove(this);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
transaction.commit();
Run Code Online (Sandbox Code Playgroud)

非常感谢你。

小智 5

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.remove(this);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
ft.commit();
Run Code Online (Sandbox Code Playgroud)