【发布时间】:2014-03-04 18:10:30
【问题描述】:
我哪里错了。我只想检查具有给定 ProductId 的片段是否已在 BackStack 中可用;
如果是,则不添加新的 Fragment,否则将当前的 Fragment 添加到 backstack。
public void showThisFragment(Fragment newFragment,int productId){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.am_fragment_holder, newFragment);
if(fragmentManager.findFragmentByTag(productId+"")==null){
fragmentTransaction.addToBackStack(productId+"");
}else{
//TODO fragment already present
//So dont add to the back stack
}
fragmentTransaction.commit();
}
请帮忙!
【问题讨论】:
-
您必须使用键将片段添加到后台堆栈,这与首先添加带有键的片段不同。或者您可以通过直接搜索 backstack 来查找密钥。有一篇很好的文章here.
-
我无法使用密钥添加它..,在我的情况下,标签就是我所拥有的。你能帮我修改一下我现在的代码吗?
标签: android android-fragments android-activity fragment android-fragmentactivity