安卓学习笔记---Fragmnet使用之add,show,hide,remove以及replace方法

本文介绍了Android中Fragment的使用,对比了replace、add、show、hide和remove方法在底部tab切换场景下的优缺点。通过示例,解释了如何避免频繁创建和销毁Fragment导致的性能问题,以及解决Fragment重叠问题的方法。建议在需要重用Fragment或避免重复创建时使用add、show和hide方法,并在某些场景下结合remove方法以实现特定需求。
摘要由CSDN通过智能技术生成

Fragment在3.0被引入以后,项目使用fragment越来越多,特别是主界面是底部tab页点击切换更换内容.

现在很多app都采用这种做法,因为这是主界面,能把更多的信息数据展示给用户看,如果是用activity消耗就比较大,而activity是Android的四大组件之一,如果使用fragment,第一方便管理,因为每个单独的业务是和activity分开的,fragment也有自己的生命周期方法.


一般底部tab现在你比较多的做法有三种

一:viewapager+fragment 这种方式有一个不好的地方就是fragment老是会被创建,如果在fragment中初始化网络请求,如果切换过快的话会出现界面闪的情况,这样对用户体验很不好,而且也多次请求网络,比较废用户的流量,而且还要把viewpager的滑动事件给禁止掉,这个倒是简单.


二:就是单纯的采用fragment 因为fragment是有容器管理的,如果切换采用replace方法的话,也有一个大问题就是fragment每次都会被创建,一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,而且会偶现重叠现象.


三:使用fragment的add添加然后判断该fragment是否被添加了 然后已被添加的可以隐藏(hide)让当前的被点击的tab所显示的内容fragment show出来,这种方式比上述二种方法好处在于fragment如果没有被销毁的话只会创建一次,这样我们在切换tab时不会导致重复创建fragment的情况,用户体验也比较好!



下面我们来分析一下

(一)使用replace方法

每次切换Fragment的时候调用方法:

getSupportFragmentManager().beginTransaction().replace(R.id.frame_show_content, displayFragment, "fragment")
        .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
        .commitAllowingStateLoss();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值