zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    Hive metastore三种配置方式
    hive学习(一)hive架构及hive3.1.1三种方式部署安装
    hiveserver2的配置和启动
    spark安装配置
    Sqoop-1.4.6安装部署及详细使用介绍
    搭建本地yum源服务器
    Centos7.X安装impala(RPM方式)
    Hive安装与配置详解
    【图文详解】Hadoop集群搭建(CentOs6.3)
    Linux下实现免密码登录(超详细)
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7863090.html
Copyright © 2011-2022 走看看