转自:https://blog.csdn.net/zglslyg/article/details/20221915

实现效果如图    ,另附下载地址fragmentTab切换示例

fragmentManager中的回退栈


下部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()得到的后退栈数值为零。

相关文章:

  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-27
  • 2021-11-02
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-21
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
  • 2021-10-06
相关资源
相似解决方案