我哪里错了。我只想检查具有给定ProductId的片段是否已在BackStack中可用;
如果是,则不要添加新的片段,否则将当前片段添加到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();
}
请帮忙!
答案 0 :(得分:1)
替换片段没有添加标签。你应该使用三个参数替换方法。我没有测试它,所以告诉我,如果我是对的。
fragmentTransaction.replace(R.id.am_fragment_holder, newFragment, String.valueOf(productId));