我的应用程序中有3个片段和一个替换片段的Base Activity。片段1是HomeFragment,我有新闻滚动
片段2是新闻详细片段
当用户从片段1中按下新闻时,我用2替换片段1,但是当用户按下后退按钮时,片段1正在重新加载。所以我想阻止这一点。
我想我可以通过在片段1上添加片段2并隐藏片段1来解决此问题。还有其他方法吗?如果只有用户传递片段2,下面的代码适用于我,但是任何其他片段都会搞乱。
当用户点击片段1中的新闻时,isDetailFragment为true,否则为false。当用户单击后退按钮时,我想再次显示片段1并删除片段2.
if(isDetailFragment)
{
detailFragment = inputFragment;
ft.hide(mContent)
.add(R.id.content_frame,inputFragment,page)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
}
else
{
mContent = inputFragment;
ft.replace(R.id.content_frame,inputFragment,page)
.addToBackStack(page)
.commit();
}
并按下
@Override
public void onBackPressed()
{
if(detailFragment!=null)
{
getSupportFragmentManager().beginTransaction()
.show(mContent).remove(detailFragment).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();
detailFragment = null;
}
else if(getSupportFragmentManager().getBackStackEntryCount()>1)
getSupportFragmentManager().popBackStack();
else
super.onBackPressed();
}
有没有其他方法可以做到这一点?我没有按预期工作