FragmentActivity隐藏旧片段并添加新片段

时间:2014-05-21 11:16:02

标签: android fragment android-fragmentactivity

我的应用程序中有3个片段和一个替换片段的Base Activity。片段1是HomeFragment,我有新闻滚动

片段2是新闻详细片段

fragments

当用户从片段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();

}

有没有其他方法可以做到这一点?我没有按预期工作

0 个答案:

没有答案