第二次从后台获取片段 [英] Get fragment from backstack for second time

查看:125
本文介绍了第二次从后台获取片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在为Android使用浏览器应用程序.我正在管理带有片段的新标签页.因此,当用户打开新的选项卡B,然后再次返回到选项卡A时,一切工作正常.当从A他尝试再次返回到B时,出现了问题.换句话说,当您尝试弹出相同的片段时,它不起作用第二次.

i'm currently working on browser app for an android. I'm managing new tabs with fragments. So everything is working fine when user open new tab B, and then go back again to tab A. The problem appear when from A he try to go back again to B. With other words its not working when you tries to pop back same fragment for the second time.

这就是我添加新标签页的方式

This is how I'm adding new tabs- fragments

    android.app.Fragment f1 = new FragmentHolder();
    allFragments.add(f1);
    getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, f1).addToBackStack(fragmentTags[allFragments.size()-1]).commit();

这里是我如何弹出片段

boolean chkFlag = getFragmentManager().popBackStackImmediate(currentTag.getFragmentTAG(),0);

感谢您的帮助.

推荐答案

在活动"中使用以下功能,

Use below function in your Activity,

private void loadFragmentAnimated(Fragment fragment, Bundle args, int containerId, String title)
    {
        fragment.setArguments(args);
        FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(containerId, fragment);
        fragmentTransaction.commitAllowingStateLoss();
    }

然后使用,

loadFragmentAnimated(c, null, R.id.container_name, "title");

并使用删除片段,

getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.id.container_name)).commit();

这篇关于第二次从后台获取片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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