Android监听ScrollView滑动到顶端和底部

Android监听ScrollView滑动到顶端和底部
package cn.testscrollview;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ScrollView;
import android.app.Activity;
/**
 * Demo描述:
 * 监听ScrollView滑动到顶端和底部
 *
 * 注意事项:
 * 1 mScrollView.getChildAt(0).getMeasuredHeight()表示:
 *   ScrollView所占的高度.即ScrollView内容的高度.常常有一
 *   部分内容要滑动后才可见,这部分的高度也包含在了
 *   mScrollView.getChildAt(0).getMeasuredHeight()中
 *  
 * 2 view.getScrollY表示:
 *   ScrollView顶端已经滑出去的高度
 *  
 * 3 view.getHeight()表示:
 *   ScrollView的可见高度
 *  
 */
public class MainActivity extends Activity {
    private ScrollView mScrollView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        init();
    }
    private void init(){
        mScrollView=(ScrollView) findViewById(R.id.scrollView);
        mScrollView.setOnTouchListener(new TouchListenerImpl());
    }
    private class TouchListenerImpl implements OnTouchListener{
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch (motionEvent.getAction()) {
            case MotionEvent.ACTION_DOWN:
                break;
            case MotionEvent.ACTION_MOVE:
                 int scrollY=view.getScrollY();
                 int height=view.getHeight();
                 int scrollViewMeasuredHeight=mScrollView.getChildAt(0).getMeasuredHeight();
                 if(scrollY==0){
                        System.out.println("滑动到了顶端 view.getScrollY()="+scrollY);
                    }
                 if((scrollY+height)==scrollViewMeasuredHeight){
                        System.out.println("滑动到了底部 scrollY="+scrollY);
                        System.out.println("滑动到了底部 height="+height);
                        System.out.println("滑动到了底部 scrollViewMeasuredHeight="+scrollViewMeasuredHeight);
                    }
                break;
            default:
                break;
            }
            return false;
        }
         
    };
}

转载于:https://www.cnblogs.com/exmyth/p/4517157.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1484):json-server工具使用

创建文件 json.db {"brands": [{"name": "TCL","date": "2018-05-30T08:07:20.0892","id": 1},{ "name": "TCL", "date": "2018-05-30T08:07:20.0892", "id"…

快照速度_网络推广——网络推广专员如何看待网站快照更新快慢问题?

百度搜索引擎针对网站快照更新的问题曾有言明,表示网站快照的更新快慢与网站权重没有太多的直接关系,因为搜索引擎对网站抓取频率与快照更新是两个不同的概念,然而有很多站长表示快照更新慢是不是因为网站内部出现问题?或者是网站…

浙江大学计算机学院工业设计复试比,2021浙江大学计算机学院工业设计工程研究生入学考试范围调整啦...

关于发布工业设计工程研究生入学考试范围的通知本通知为预通知,如有调整,以浙江大学研究生院正式发布的2021年硕士研究生招生简章及招生目录为准。自2021年硕士研究生招生考试(2020年冬季)起,浙江大学工业设计工程(计算机学院、软件学院)考试…

qtp的三种录制模式(转)

QTP提供三种不同的录制方式:正常录制(Normal Recording)、模拟录制(Analog Recording)和低级录制(Low Level Recording)。 1.正常录制(Normal Recording)  QTP默认的录…

kafka python框架_为什么选择R而不是Python做ETL

导读:1. 打破R慢的印象,ETL效率显著优于Python,堪比spark,clickhouse2. 对比python中的datatable、pandas、dask、cuDF、modin,R中data.table以及spark、clickhouse3. 探讨R中的ETL体系ETL在数据工作中起着至关重要的作…

无为职业学校计算机班,致盐亭职中2000级计算机三班全体同学的一封信

忆往夕,思念漫溢。看今朝,岁月峥嵘。曾几何时,我们泪洒赛场!曾几何时,我们携手送别!那几年,我们为友情歌唱。那几年,我们为生活感慨。“看我意气风发!听我放声高歌&#…

python with用法

python中with可以明显改进代码友好度,比如: [python] view plaincopyprint? with open(a.txt) as f: print f.readlines() 为了我们自己的类也可以使用with, 只要给这个类增加两个函数__enter__, __exit__即可: [python] v…

k型热电偶材料_电热汇分享热电偶测温元件符号、标准及参数详解

有人咨询电热汇问:热电偶测温元件符号、标准及参数是什么?今天来详细介绍一下。一、热电偶测温元件符号当导电物质处于温度时,其电子或空穴会随着温度梯度由高温区往低温区移动,由此产生的电荷堆积的现象称作热电效应,…

计算机ip地址配置参数,指定电脑的IP地址和DNS等参数配置方法

使用宽带路由器的话一般建议手工指定电脑的IP地址和DNS等参数,设置方法参考下文。如果你使用的是Windows 2000或Windows XP系统,请点击 “网上邻居”――> “本地连接”――>“属性”――>“Internet协议 (TCP/IP)属性”,将会看到如…

使用 ServiceStack 构建跨平台 Web 服务(转)

出处:http://www.cnblogs.com/shanyou/p/3348347.html 本文主要来自MSDN杂志《Building Cross-Platform Web Services with ServiceStack》,Windows Communication Foundation (WCF) 是一个相当优秀的服务框架,当我们讨论跨平台的服务的时候,…

框架详解_详解:python Web框架flask表单实现(建议收藏)

今天为大家带来的内容是:python框架flask表单实现详解文章内容主要介绍了python框架flask表单实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下!!!表单表单…

2017年计算机组成原理1254,2018年7月试卷号1254计算机组成原理A.pdf

2018年7月试卷号1254计算机组成原理A试卷代号:1254 座位号!I I国家开放大学(中央广播电视大学)2018 年春季学期"开放本科"期末考试计算机组成原理试题2018 年 7 月- …回...-国.题号四总分一一分数得分!评卷入一、选择题(每小题 3 分,共 36 分)1. 下列数中…

OC --(5)-- 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序...

字典1.快速枚举 forin 运行时不能更改内部数据for (<#type *object#> in <#collection#>) { <#statements#> } //对象 //数组for (Contact *contact in friends) { [contact show]; }判定是否为空 NSString *ns nil NSI…

共享内存中使用指针_详解c++中字符指针数组的使用

之前有写过一篇叫c中动态数组的使用&#xff0c;今来看看c中的字符指针数组的使用。涛哥&#xff1a;c中的动态数组使用​zhuanlan.zhihu.com指针数组&#xff0c;就指向指针的指针&#xff0c;很早以前在说指针的时候说过&#xff0c;但后来发现很多人还是比较难以理解&#x…

软件测试用例项目写作,通用测试用例写作方法

测试用例工作过程软件测试用例设计和软件测试用例写作软件测试用例设计&#xff1a;从设计层面考虑(功能性、可用性、安全性等方面)&#xff1b;软件测试用例写作&#xff1a;指的是软件测试用例的写作规范(格式、标识的命名规范等)软件测试用例设计设计出用例的内容&#xff0…

二叉树学习笔记--先序遍历

首先数据二叉树中数据存储如图&#xff0c;n代表节点为空 &#xff0c;此时退出当前函数。 分解各个步骤如图&#xff0c;为了简化&#xff0c;将节点中的数据代表节点&#xff0c;先left执行&#xff0c;left执行前先输出数据&#xff0c;left执行时&#xff0c;right等待。此…