【问题标题】:Reset/reload fragment container重置/重新加载片段容器
【发布时间】:2019-06-26 22:21:10
【问题描述】:

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

 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();

【问题讨论】:

  • 请记录,在这种情况下它不起作用。
  • 您没有重置容器。您需要重置容器内的片段。

标签: android android-fragments


【解决方案1】:

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

例如做类似的事情

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();

【讨论】:

  • 如果我有一个视图寻呼机怎么办?
  • @maňish 到目前为止我还没有尝试使用视图寻呼机。
猜你喜欢
  • 1970-01-01
  • 2016-11-24
  • 2012-12-15
  • 2012-11-25
  • 2022-10-12
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多