ScrollView监听滑动到顶部和底部的方法
不需要监听滑动位置,只需要重写ScrollView的onOverScrolled和stopNestedScroll方法就可以了
- public class ReadScrollView extends ScrollView{
- private int mScrollY = 0;
- private boolean mClampedY = false;
- public ReadScrollView(Context context) {
- super(context);
- }
- public ReadScrollView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public ReadScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
- /**
- * 监听变化---一般用不到
- * @param scrollX
- * @param scrollY
- * @param clampedX
- * @param clampedY
- */
- // @Override
- // protected void onScrollChanged(int l, int t, int oldl, int oldt) {
- // super.onScrollChanged(l, t, oldl, oldt);
- // if (scrollChangedListener != null){
- // scrollChangedListener.onScrollChanged(l,t,oldl,oldt);
- // }
- //// DebugUtil.d("l==" + l +" t==" + t +" oldl==" + oldl + " oldt=="+oldt);
- // }
- @Override
- protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
- super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
- //scrollY=位置0和最底y坐标;clampedY=是否到顶部或者底部
- mScrollY = scrollY;
- mClampedY = clampedY;
- // DebugUtil.d("======l==onOverScrolled"+" scrollY="+scrollY+" clampedY="+clampedY );
- }
- /**
- * 刷新到顶部和底部
- */
- @Override
- public void stopNestedScroll() {
- super.stopNestedScroll();
- if (mClampedY){
mClampedY = false;- if (mScrollY == 0){
- scrollChangedListener.onScrollChangedTop();
- }else {
- scrollChangedListener.onScrollChangedBottom();
- }
- }
- DebugUtil.d("======l==stopNestedScroll" );
- }
- OnScrollChangedListener scrollChangedListener;
- public void setScrollChangedListener(OnScrollChangedListener scrollChangedListener) {
- this.scrollChangedListener = scrollChangedListener;
- }
- /**
- *
- */
- public interface OnScrollChangedListener{
- //到达顶部
- void onScrollChangedTop();
- //到达底部
- void onScrollChangedBottom();
- //监听变化
- // void onScrollChanged(int l,int t,int oldl,int oldt);
- }
- }
使用
- scrollview.setScrollChangedListener(new ReadScrollView.OnScrollChangedListener() {
- @Override
- public void onScrollChangedTop() {
- ShowUtils.toast("顶部");
- }
- @Override
- public void onScrollChangedBottom() {
- ShowUtils.toast("底部");
- }
- });
ScrollView监听滑动到顶部和底部的方法的更多相关文章
- Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)
Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...
- Android: ScrollView监听滑动到顶端和底端
在项目中需要监听ScrollView滑动到顶端和底端的时候以实现自己的ScrollView,那么怎样去监听呢?今天查看了一下ScrollView的源码,找到了一种方法.先看一下源码中的overScro ...
- android去掉滑动到顶部和底部的阴影
android去掉滑动到顶部和底部的阴影 <ListView android:id="@+id/listView" android:layout_width="ma ...
- js与jquery实时监听输入框值的oninput与onpropertychange方法
文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法.分享给大家供大家参考.具体如下: 最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时监 ...
- 关于scrollview监听的一些方法
一 package cn.testscrollview; import android.os.Bundle; import android.view.MotionEvent; import andro ...
- 移动端控制视频点击播放点击下一个视频时自动停止播放&监听滑动溢出屏幕高度时停止播放
直接上代码js部分: <script type="text/javascript"> var go;//记录video播放器位置 var video=document. ...
- Qt实现小功能之列表无限加载(创意很不错:监听滚动条事件,到底部的时候再new QListWidgetItem)
概念介绍 无限加载与瀑布流的结合在Web前端开发中的效果非常新颖,对于网页内容具备较好的表现形式.无限加载并没有一次性将内容全部加载进来,而是通过监听滚动条事件来刷新内容的.当用户往下拖动滚动条或使用 ...
- Android 用Activity的onTouchEvent来监听滑动手势
package com.example.activityOnTouchEvent; import android.app.Activity; import android.os.Bundle; imp ...
- 实时监听input输入内容的N种方法
现在有一个需求,需要我们实时监听input输入框中的内容,从而带来更好的用户体验,而不是等我们全部输入完毕才告诉我们格式不对首先我们创建一个input输入框 <form name='loginF ...
随机推荐
- 查看详细linux系统信息的命令和方法
查看内存大小: cat /proc/meminfo |grep MemTotaluname -a # 查看内核/操作系统/CPU信息的linux系统信息命令head -n 1 /etc/issue # ...
- 论文阅读笔记五十六:(ExtremeNet)Bottom-up Object Detection by Grouping Extreme and Center Points(CVPR2019)
论文原址:https://arxiv.org/abs/1901.08043 github: https://github.com/xingyizhou/ExtremeNet 摘要 本文利用一个关键点检 ...
- Qt 学习之路 2(12):菜单栏、工具栏和状态栏
Home / Qt 学习之路 2 / Qt 学习之路 2(12):菜单栏.工具栏和状态栏 Qt 学习之路 2(12):菜单栏.工具栏和状态栏 豆子 2012年9月10日 Qt 学习之路 2 2 ...
- HTML5拖拽——将本地文件拖拽到网页中显示
HTML5标准中的提供的用于文件输入输出(I/O)的对象 File: 代表一个文件对象 FileList: 代表一个文件列表,类数组对象 FileReader 用于从文件中提取内容 FileWrite ...
- P1111 修复公路(并查集)
题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你 ...
- 杭电ACM hdu 1398 Square Coins
Problem Description People in Silverland use square coins. Not only they have square shapes but also ...
- python基础之1--Python入门
第1章 Python生态圈 第2章 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 2.1 编程的目的: 计算机 ...
- Why Nexiq 125032 USB Link Truck diagnostic tool is so helpful ?
As for as I am concerned , Heavy Duty Diagnostic Nexiq 125032 USB is a helpful tool , which has exce ...
- php数组·的方法3-数组指针
/* * 数组指针函数 * */ //key() current() 指针一直停在第一位 不会下移 echo '<hr>'; $arr5 = array('name' => 'hxq ...
- hadoop 常用hdfs命令