RecycleView在addItemDecoration之后每次重新加载这个页面的时候,item之间的间距都会不断变大大概是变大一倍

本文探讨了RecycleView在使用addItemDecoration后,item间距随页面重复加载而异常增大的问题,并提供了一种通过重写onActivityCreated方法来解决此问题的方法。

RecycleView在addItemDecoration之后每次重新加载这个页面的时候,item之间的间距都会不断变大大概是每次变大一倍

这里写图片描述
这里写图片描述
这里写图片描述

尝试重写onActivityCreated的时候再调用addItemDecoration方法

 @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        LogUtil.e("TAGD", "第二个fragment    onActivityCreated");
        recyMicTv.addItemDecoration(new RecyclerView.ItemDecoration() {
            @Override
            public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
                super.getItemOffsets(outRect, view, parent, state);
                RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
                int viewAdapterPosition = layoutParams.getViewAdapterPosition();
                if (viewAdapterPosition % 2 == 0) {//0
                    outRect.set(0, DimenUtils.dp2px(6), DimenUtils.dp2px(3), 0);
                } else if (viewAdapterPosition % 2 == 1) {//1
                    outRect.set(DimenUtils.dp2px(3), DimenUtils.dp2px(6), 0, 0);
                }

            }
        });
    }

这里写图片描述

解析:
因为继承的是懒加载的BaseFragment,所以lazyLoad()是每次进入Fragment的时候就会执行一次,所以放在onActivityCreated()中执行一次就行

onCreateView():每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View组件。
onActivityCreated():当Fragment所在的Activity被启动完成后回调该方法。

什么时候调用onActivityCreated()呢:
1、静态的view不需要onActivityCreated

2、保存view的状态的时候需要用onActivityCreated

3、访问父activity的view层的时候需要在onActivityCreated 方法里面做

参考博客:http://blog.youkuaiyun.com/agent_bin/article/details/52050307

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葫芦娃你好我是皮卡丘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值