Android6.0系统ScrollView嵌套RecyclerView冲突问题

  最近在弄猜你喜欢这个布局,以前使用girdView控件加载猜你喜欢布局。发现当图片多,或者很大的时候。很容易引发oom问题。当girdView 使用的时候发现容易引起内存泄漏,看似没个item都回收了,但是其所占资源并没有回收。宝宝心里苦啊,不得不换个控件啊,思来想去还是换成RecyclerView吧,RecyclerView是V7包下的东西,可以横向滑动,竖向滑动,。完全可以代替listView或girdView了。RecyclerView有过多的人用,我就不详解了。我吧猜你喜欢布局换成RecyclerView,看momory自愿消耗,果然下去了,心里一顿美,哈哈,终于解决问题了。但是当我在真机测试的时候,妈蛋,发现6.0完全不是那么回事啊,滑起来相当卡顿,我还以为是oom问题,但是仔细一看也不对。手指放在RecyclerView控件上滑的很流畅。思来想去肯定是RecyclerView和ScrollView 滑动冲突了。都有滑动特性。出了问题咱就解决呗,下面直接上代码啊


public class ScrollGridLayoutManager extends GridLayoutManager {
    private boolean isScrollEnabled = true;
    public ScrollGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    public ScrollGridLayoutManager(Context context, int spanCount) {
        super(context, spanCount);
    }

    public ScrollGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) {
        super(context, spanCount, orientation, reverseLayout);
    }

    public void setScrollEnabled(boolean flag) {
        this.isScrollEnabled = flag;
    }

    @Override
    public boolean canScrollVertically() {
        return isScrollEnabled && super.canScrollVertically();
    }
}


在加载的地方这么使用

ScrollGridLayoutManager recyclerViews = new   ScrollGridLayoutManager (MyApplicaton.context,2);
recyclerViews.setScrollEnabled(false);grd_like.setLayoutManager(recyclerViews);


好了剩下的大家应该都知道怎么写了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值