3

这个问题有两个部分。

假设我们有一个 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();

非常感谢你。

4

2 回答 2

5
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.remove(this);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
ft.commit();
于 2016-05-11T07:54:31.173 回答
2
  1. 我更喜欢有一个愚蠢的片段,它不知道它在哪里被使用,这样你就可以在任何你想要的活动中使用它,它会有你为它设定的精确目标。当然,你可以为所欲为。

  2. 这看起来像是关闭它,但我宁愿替换它。只要您有对它的引用,您也可以随时返回到该片段。

于 2013-02-17T09:00:23.300 回答