您的位置:首页 > 其它

fragmentManager中的回退栈

2015-07-13 16:09 190 查看


下部tab标签,实现fragment页面切换。

遇到的问题:

通过FragmentTransaction的replace方法会导致,每次都会重新调用fragment的onCreateView()方法,浪费时间。

解决方法:

通过FragmentTransaction的hide和show方法来实现fragment的显示和隐藏,这样就不会重复调用onCreateView函数了。

FragmentTransactioin 可以用来添加,删除fragment,也可以控制fragment的显示和隐藏。

这是如果调用addToBackStack(null),此时的状态就会被保存在回退栈,按返回键的时候就会显示出栈顶的

getSupportFragmentManager().popBackStack() 这个方法可以让栈顶的fragment出栈。

只有在程序运行时被动态添加的fragment才会被添加到后退栈。

  getSupportFragmentManager().beginTransaction()

       .add(R.id.fragment_container, newFragment,"testa")

       .addToBackStack(null)

       .commit();

 程序跑起来之后,通过这个方法后退栈数才会加一,如果在代码中一口气添加多个,再运行程序,getSupportFragmentManager().getBackStackEntryCount()得到的后退栈数值为零。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: