fragmentManager中的回退栈

来源:互联网 发布:优美图软件下载 编辑:程序博客网 时间:2024/06/01 09:57


下部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()得到的后退栈数值为零。
0 0
原创粉丝点击