重置/重装片段容器 [英] Reset/reload fragment container

查看:119
本文介绍了重置/重装片段容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何重置或重新加载片段容器,使之空。
我有一个主详细视图,我想重置详细集装箱空上的菜单项click.This工作在某些情况下,在一些不一样。

  NullFragment片段=新NullFragment();
 FragmentManager fragmentManager = getFragmentManager();
 FragmentTransaction fragmentTransaction = fragmentManager
        .beginTransaction();
 fragmentTransaction.replace(R.id.item_detail_container,
 分段);
 诠释计数= fragmentManager.getBackStackEntryCount();
 fragmentManager.popBackStackImmediate(计数,0);
 fragmentTransaction.commit();


解决方案

通常你只要从中取出碎片。

例如做这样的事情。

<$p$p><$c$c>getFragmentManager().beginTransaction().remove(getFragmentManager().findFragmentById(R.id.your_container)).commit();

这将删除从片段 your_container 抱着它。

这得到片段当前present在your_container

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

和这个删除片段

  getFragmentManager()调用BeginTransaction()删除(片段).commit()。

修改

有时也通过使用执行和完成,这是可以做到这是为了确保所有交易有用

  getFragmentManager()executePendingTransactions()。

How can i reset or reload a fragment container, to make it empty. I have a master detail view and i want to reset the detail container to empty on a menu item click.This works in some cases and does not in some.

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

解决方案

Usually you simply remove the fragment from it.

For example do something like

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

this will remove the fragment from the your_container holding it.

This gets the fragment currently present in your_container

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

and this remove the fragment

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

EDIT

Also sometimes it is useful to ensure all transactions are performed and finished, this can be done by using

getFragmentManager().executePendingTransactions();

这篇关于重置/重装片段容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆