Android 判断ListView滑动方向

代码很简单,给mListView监听onScrollListener事件,然后在onScroll进行判断

//listView中第一项的索引
	private int mListViewFirstItem = 0;
	//listView中第一项的在屏幕中的位置
	private int mScreenY = 0;
	//是否向上滚动
	private boolean mIsScrollToUp = false;

	@Override
	public void onScroll(AbsListView absListView, int firstVisibleItem,int visibleItemCount, int totalItemCount) {

		if(mListView.getChildCount()>0)
		{
			boolean isScrollToUp = false;
			View childAt = mListView.getChildAt(firstVisibleItem);
			int[] location = new int[2];
			childAt.getLocationOnScreen(location);
			Log.d("onScroll", "firstVisibleItem= "+firstVisibleItem+" , y="+location[1]);

			if(firstVisibleItem!=mListViewFirstItem)
			{
				if(firstVisibleItem>mListViewFirstItem)
				{
					Log.e("--->", "向上滑动");
					isScrollToUp = true;
				}else{
					Log.e("--->", "向下滑动");
					isScrollToUp = false;
				}
				mListViewFirstItem = firstVisibleItem;
				mScreenY = location[1];
			}else{
				if(mScreenY>location[1])
				{
					Log.i("--->", "->向上滑动");
					isScrollToUp = true;
				}
				else if(mScreenY<location[1])
				{
					Log.i("--->", "->向下滑动");
					isScrollToUp = false;
				}
				mScreenY = location[1];
			}

			if(mIsScrollToUp!=isScrollToUp)
			{
				onScrollDirectionChanged(mIsScrollToUp);
			}

		}
	}
	private void onScrollDirectionChanged(boolean isScrollToUp) 
	{

	}
时间: 2024-08-11 18:04:33

Android 判断ListView滑动方向的相关文章

判断listview滑动方向的代码片段

mListView.setOnScrollListener(new OnScrollListener() { private int lastIndex = 0; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO 自动生成的方法存根 switch (scrollState) { // 滚动之前,手还在屏幕上 记录滚动前的下标 case OnScrollListener.S

《移动端浏览器Touch事件判断手指滑动方向方法》

1 $("body").on("touchstart", function(e) { 2     e.preventDefault(); 3     startX = e.originalEvent.changedTouches[0].pageX, 4     startY = e.originalEvent.changedTouches[0].pageY; 5 }); 6 $("body").on("touchmove",

Android中ListView滑动时数据混乱

相信做过Android应用开发的或多或少的都遇到过这样的问题,要不就是在ListView滑动时出现数据混乱,或者是GridView滑动时出现数据混乱.先来看看一位网友写的文章,个人感觉这篇文章挺不错的: Android ListView滑动过程中图片显示重复错位闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及ListView的缓存机制. 1.原因分析 ListView item缓存机制:为了使得性能更优,ListView会缓存行i

android android 判断是否滑动

(转自:http://blog.csdn.net/angle_rupert/article/details/6255522) 声明: 1 float x_temp01 = 0.0f; 2 float y_temp01 = 0.0f; 3 float x_temp02 = 0.0f; 4 float y_temp02 = 0.0f; 重写Activity的onTouchEvent方法: 1 @Override 2 public boolean onTouchEvent(MotionEvent ev

android 判断左右滑动,上下滑动的GestureDetector简单手势检测

直接加入监听GestureDetector放在需要判断滑动手势的地方: 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.util.Log; 4 import android.view.GestureDetector; 5 import android.view.GestureDetector.OnGestureListener; 6 import android.view.MotionEven

android中listview滑动卡顿的原因

导致Android界面滑动卡顿主要有两个原因: 1.UI线程(main)有耗时操作 2.视图渲染时间过长,导致卡顿 http://www.tuicool.com/articles/fm2IFfU

js判断元素滑动方向(上下左右)移动端

每天学习一点点. 1 var startx, starty; 2 //获得角度 3 function getAngle(angx, angy) { 4 return Math.atan2(angy, angx) * 180 / Math.PI; 5 }; 6 7 //根据起点终点返回方向 1向上 2向下 3向左 4向右 0未滑动 8 function getDirection(startx, starty, endx, endy) { 9 var angx = endx - startx; 10

【Android】ListView监听上下滑动(判断是否显示返回顶部按钮)

设置滚动监听判断ListView的滚动方向同时获取屏幕高度.ListView实际高度,判断是否需要展示返回顶部按钮(具体逻辑请看代码--附有详细注释). 下载地址:http://www.dwz.cn/zG99W 源码运行动态图

Android Toolbar跟随ListView滑动隐藏和现实

使用过Google Play Store应用或者Google+应用的人都知道,其ActionBar能随着ListView的滑动而相应的隐藏或者显示.效果看起来很不错,为此,我笨拙的模仿了一个类似的效果,不知道有没有更好的办法. 先上主布局activity_main: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.