我是靠谱客的博主 调皮眼睛,最近开发中收集的这篇文章主要介绍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);


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

最后

以上就是调皮眼睛为你收集整理的Android6.0系统ScrollView嵌套RecyclerView冲突问题的全部内容,希望文章能够帮你解决Android6.0系统ScrollView嵌套RecyclerView冲突问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部