zoukankan      html  css  js  c++  java
  • Android 监听ScrollView的滑动

    我们需要监听ScroView的滑动情况,比如滑动了多少距离,是否滑到布局的顶部或者底部。可惜的是SDK并没有相应的方法,不过倒是提供了一个 

     protected void onScrollChanged(int l, int t, int oldl, int oldt) 

    显然这个方法是不能被外界调用的,因此就需要把它暴露出去,解决方式就是写一个接口

    /**
     * Created by 刘楠 on 2016/8/21 0021.17:24
     */
    public interface ScrollViewListener {
    
        void onScrollChanged(ObservableScrollView observableScrollView,int x,int y ,int oldx, int oldy);
    }

    然后重写ScrollView类,给它提供上面写的回调接口

    package com.liu.titlealpha.view;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.ScrollView;
    
    /**
     * Created by 刘楠 on 2016/8/21 0021.17:23
     */
    public class ObservableScrollView extends ScrollView {
    
    
        private ScrollViewListener mScrollViewListener=null;
    
        public void setScrollViewListener(ScrollViewListener scrollViewListener) {
            mScrollViewListener = scrollViewListener;
        }
    
        public ObservableScrollView(Context context) {
            super(context);
        }
    
        public ObservableScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public ObservableScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        @Override
        protected void onScrollChanged(int x, int y, int oldx, int oldy) {
            super.onScrollChanged(x, y, oldx, oldy);
            if (mScrollViewListener != null) {
                mScrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
            }
        }
    }

    布局时,用重写的这个ScrollView

  • 相关阅读:
    Hadoop出现 Wrong FS: hdfs://......错误的解决方法
    在Linux下安装JDK环境
    卸载Linux自带的JDK
    hadoop1.2.1伪分布模式安装教程
    spring配置bean的生命周期
    spring注入的四种方式
    python re模块search()与match()区别
    VB.NET操作Excel
    位运算
    Python简单源码解析
  • 原文地址:https://www.cnblogs.com/liunanjava/p/5793151.html
Copyright © 2011-2022 走看看