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()得到的后退栈数值为零。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值