• Android ScrollView里嵌套RecyclerView时,在RecyclerView上滑动时出现卡顿(冲突)的现象


    最近在项目中遇到一个现象,一个界面有一个RecyclerView(GridView型的),外面套了一层ScrollView,通过ScrollView上下滚动,但是在滑动的时候如果是在RecyclerView的内容上滑动,这时会出现滑动卡顿,而如果是在其他内容上滑动时就可以很顺畅的滑下去。

    这是RecyclerView和ScrollView的滑动事件冲突引起的,解决办法就是禁止RecyclerView的滑动事件.

    解决办法:

    方法一:

    inearLayoutManager = new LinearLayoutManager(context) {
        @Override
        public boolean canScrollVertically() {
            return false;
        }
    };

    方法二:
    重写LayoutManager或者GridLayoutManager

    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() {
            //Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll
            return isScrollEnabled && super.canScrollVertically();
        }
    }
  • 相关阅读:
    IceMx.Mvc 我的js MVC 框架 二、视图的数据绑定
    IceMx.Mvc 我的js MVC 框架 一、html代码的分离(视图)
    Android Socket编程基础
    第七次作业
    第六次作业
    第五次作业
    第4次作业
    关于个人项目的总结,最主要是不足
    第二次作业
    微信的优缺点以及发展史
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7863090.html
Copyright © 2020-2023  润新知