1

如何重置或重新加载片段容器以使其为空。我有一个主详细信息视图,我想在单击菜单项时将详细信息容器重置为空。这在某些情况下有效,在某些情况下无效。

 NullFragment fragment = new NullFragment();
 FragmentManager fragmentManager = getFragmentManager();
 FragmentTransaction fragmentTransaction = fragmentManager
        .beginTransaction();
 fragmentTransaction.replace(R.id.item_detail_container,
 fragment);
 int count = fragmentManager.getBackStackEntryCount();
 fragmentManager.popBackStackImmediate(count, 0);
 fragmentTransaction.commit();
4

1 回答 1

8

通常,您只需从中删除片段。

例如做类似的事情

getFragmentManager().beginTransaction().remove(getFragmentManager().findFragmentById(R.id.your_container)).commit();

这将从持有它remove的片段。your_container

这将获取当前存在于 your_container 中的片段

getFragmentManager().findFragmentById(R.id.your_container)

这会删除片段

getFragmentManager().beginTransaction().remove(fragment).commit();

编辑

有时确保所有事务都执行和完成也很有用,这可以通过使用来完成

getFragmentManager().executePendingTransactions();
于 2013-08-16T08:41:58.843 回答