android fragmnet重叠问题解决方案

本文探讨了在Android中使用Fragment作为底部Tab切换内容时可能出现的重叠问题及其解决方案。通过分析不同Tab切换策略的优缺点,重点讲述了如何利用onSaveInstanceState()和onRestoreInstanceState()方法来防止Fragment重叠,提高用户体验。
摘要由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的情况,用户体验也比较好!

新建一个android项目:tabsfragment

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
 >
 <LinearLayout 
     android:id="@+id/ll_bottom"
     android:layout_width="fill_parent"
     android:layout_height="45dp"
     android:orientation="horizontal"
     android:layout_alignParentBottom="true"
     >
     <Button 
         android:id="@+id/btn_square"
         android:layout_

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值