百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Android监听滚动视图_安卓滑动监听

wptr33 2025-02-20 18:17 41 浏览

Android UI Libs之
Android-ObservableScrollView

1. 说明


Android-ObservableScrollView,顾名思义,Android上观察滚动的视图,可以监听滚动视图的滚动状态。它可以很简单地与Toolbar进行交互,并且很方便地创建Material Design的app。

2. 配置

在模块的build.gradle中添加依赖:compile '
com.github.ksoichiro:android-observablescrollview:1.5.0'

3. 基本使用


Android-ObservableScrollView提供一些可以观察滚动事件的滚动视图:

  • ObservableGridView:扩展自GridView

  • ObservableListView:扩展自ListView

  • ObservableRecyclerView:扩展自RecyclerView

  • ObservableScrollView:扩展自ScrollView

  • ObservableWebView:扩展自WebView

我以ObservableListView来说明其基本使用方法:

在xml中定义ObservableListView

android:id="@+id/list_view"

android:layout_width="match_parent"

android:layout_height="match_parent">

在java文件中对ObservableListView的相关操作:

this.listview = (ObservableListView) findViewById(R.id.list_view);

ArrayList items = new ArrayList(); for (int i = 1; i <= 100; i++) {

items.add("数据 " + i);

} //为listview设置Adapter

listview.setAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1,items)); //为listview设置滚动回调观察者

listview.setScrollViewCallbacks(this);

所在Activity实现了
ObservableScrollViewCallbacks
接口,并覆盖该接口中的所有方法:

/**

* 滚动时

* @param scrollY

* @param firstScroll

* @param dragging

*/

@Override

public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) {

Log.i("onScrollChanged","Y轴的坐标:"+scrollY);

} /**

* 按下时

*/

@Override

public void onDownMotionEvent() {

} /**

* 拖曳结束或者取消时

* @param scrollState

*/

@Override

public void onUpOrCancelMotionEvent(ScrollState scrollState) { if(scrollState==ScrollState.DOWN){

Log.i("onUpOrCancelMotionEvent","向下滚动");

}else if(scrollState==ScrollState.UP){

Log.i("onUpOrCancelMotionEvent","向上滚动");

}else {

Log.i("onUpOrCancelMotionEvent","停止滚动");

}

}

即使调用了
listview.setScrollViewCallbacks(this)
方法,listview还可以调用
listview.setOnScrollListener()
,它们会同时起作用。


Android-ObservableScrollView还给出了很多交互的Activity。

程序源代码下载,我的github仓库:
https://github.com/lavor-zl/UILibs。

欢迎关注我的微信公众号:Android技术漫谈

相关推荐

威信Chronosonic XVX全新旗舰全球首发 设计特点彻底公开

第一眼看到WilsonAudio新推出的ChronosonicXVX音箱,相信大家都会直觉认为它是两年前超级旗舰WAMMMasterChronosonic的缩小版,不过这个推测并不完全正确。C...

C#高精度Timer和Delay以及时间测量

在PCHMI7.0后在工具箱里会多一个MsTimer,以及Delay和Microsecond两个类。...

python教程从基础到精通,第9课—日期与时间

Hello,小伙伴们,祝大家五.一玩得快乐!刚学习完了七大数据类型,今天咱们来学习日期与时间的表示方法。Python标准库中提供了时间和日期的支持:calendar:日历相关;time、datetim...

软件测试|教你轻松玩转Python日期时间

Python基础之日期时间处理...

Go语言中互斥锁与读写锁,你知多少?

简述Golang中的锁机制主要包含互斥锁和读写锁互斥锁互斥锁是传统并发程序对共享资源进行控制访问的主要手段。在Go中主要使用sync.Mutex的结构体表示。一个简单的示例:funcmutex()...

变形金刚动画大电影——经典台词赏析

YOURDAYSARENUMBEREDNOW,DECEPTI-CREEPS你们活不了多久了,霸天虎小子。-{铁皮说的话,体现了铁皮的嫉恶如仇,可是后来铁皮在飞船上遇袭身亡,可谓是出师未捷身先...

Python时间日期模块使用教程(python3日期)

1.时间日期处理概述在日常编程中,时间日期处理是非常常见的需求,比如:记录日志时间...

亚马逊介绍AWS“无服务器”云服务改进:数据库可线上扩充容量等

IT之家11月29日消息,在今天于美国拉斯维加斯展开的亚马逊“AWSre:Invent2023”活动中,亚马逊计算部门资深副总裁PeterDeSantis,介绍了旗下三款云端服务,IT...

2.日期格式 datetime(日期时间显示格式)

fromdatetimeimportdatetime1.获取当前日期和时间now=datetime.now()#2025-05-3110:56:01.4687822.格式化日期...

【科普】时间单位大盘点(时间单位都有哪些?)

时间单位,是7种基本单位之一,长度、时间、质量、物质的量、光照度、电流和(热力学)温度是七种基本单位。本词条中时间单位以时间从大到小列。今天我们来盘点下时间的单位换算...

基于PHP的Laravel框架,盘点Github高星Web管理后台,效率为王!

在Web开发工作中,选择一个高效、稳定的后台管理系统是提高开发效率的关键。虽然PHP在近些年中的热度有所减退,但其上手简单、开源、灵活且被广泛应用的特点,仍然使其在编程语言排行榜中保持前十的位置。这表...

如何使用PHP编写一个简单的留言板?

留言板是一个常见的Web应用程序,允许用户在网站上发布和查看留言。在本文中,我们将使用PHP编写一个简单的留言板,介绍构建过程中的关键步骤和技巧。一、准备工作在开始编写留言板之前,我们需要准备好以下工...

产品经理提需求时要考虑的 15 个隐性需求

虽然世界充满未知的变化,但是有一些大的方向还是可以把握的,本文跟大家谈谈产品经理提需求时要考虑的15个隐性需求,enjoy~俗话说,计划赶不上变化快,无论需求文档做得如何细致,考虑得如何周全,总会...

关于 PHP 启动 MongoDb 找不到指定模块问题

前言:最近有一个小demo,需要通过PHP将用户行为记录储存到MongoDB,再用Spark做协同过滤。由于以前处理跨语言交互是通过消息中间件,这次本地使用MongoDB却弄出了几个问...

PHP程序员老鸟面试经历(php程序员怎么样)

在任何时代找任何工作都有面试这么一说的。特别是高端技术类的工种对技术理论和技术实操能力要求很严格。大部分公司招收技术员工的要求也越来愈高。至于PHP程序员也是如此,我估计大多数PHP老鸟已经不在意所...