Android--判断listview上下滑动的方法
elv_music_res_fragment.setOnScrollListener(new AbsListView.OnScrollListener() {
private int mLastFirstPostion = 0;
private int mLastFirstTop = 0;
private int touchSlop = ViewConfiguration.get(getActivity()).getScaledTouchSlop();
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
int currentTop;
View firstChildView = absListView.getChildAt(0);
if (firstChildView != null) {
currentTop = absListView.getChildAt(0).getTop();
} else {
//ListView初始化的时候会回调onScroll方法,此时getChildAt(0)仍是为空的
return;
}
//判断上次可见的第一个位置和这次可见的第一个位置
if (firstVisibleItem != mLastFirstPostion) {
//不是同一个位置
if (firstVisibleItem > mLastFirstPostion) {
// 下
if (rg_container_resFragment.getVisibility() != View.GONE) {
rg_container_resFragment.setVisibility(View.GONE);
}
} else {
// 上
if (rg_container_resFragment.getVisibility() != View.VISIBLE) {
rg_container_resFragment.setVisibility(View.VISIBLE);
}
}
mLastFirstTop = currentTop;
} else {
//是同一个位置
if (Math.abs(currentTop - mLastFirstTop) > touchSlop) {
//避免动作执行太频繁或误触,加入touchSlop判断,具体值可进行调整
if (currentTop > mLastFirstTop) {
// 上
if (rg_container_resFragment.getVisibility() != View.VISIBLE) {
rg_container_resFragment.setVisibility(View.VISIBLE);
}
} else if (currentTop < mLastFirstTop) {
// 下
if (rg_container_resFragment.getVisibility() != View.GONE) {
rg_container_resFragment.setVisibility(View.GONE);
}
}
mLastFirstTop = currentTop;
}
}
mLastFirstPostion = firstVisibleItem;
}
});
Android--判断listview上下滑动的方法的更多相关文章
- Android判断Touch为滑动事件还是操作控件
Android判断Touch为滑动事件还是操作控件 因为在项目中要判断WebView是否处于滚动状态,但它不像ListView有onScrollStateChanged方法来监听,要实现就得手动监听它 ...
- android 修改listview item view 的方法(转)
android 修改listview item view 的方法 具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView. ...
- 【转】Android 实现ListView的滑动删除效果
http://www.cnblogs.com/weixiao870428/p/3524055.html http://download.csdn.net/download/love_javc_you/ ...
- android 继承ListView实现滑动删除功能.
在一些用户体验较好的应用上,可以经常遇见 在ListView中 向左或向右滑动便可删除那一项列表. 具体实现 则是继承ListView实现特定功能即可. (1). 新建 delete_butt ...
- Android下ListView上下滑动背景变黑
老问题,Google一下就能找到N多答案,为方便自己日后查阅,记录如下: 手指在ListView上下滚动时,ListViewItem背景变黑,因为在滚动的时候为了提升性能做了优化,为提高滚动的性能,A ...
- Android判断屏幕锁屏的方法总结
由于做一个项目,需要判断屏幕是否锁屏,发现网上方法很多,但是比较杂,现在进行总结一下: 总共有两类方法: 一.代码直接判定 二.接收广播 现在先说第一类方法(代码直接判定): 1.通过PowerMan ...
- android scrollview组件禁止滑动的方法
xml配置: android:id="@+id/sc_freement" android:layout_width="fill ...
- android 修改listview item view 的方法
具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView.getFirstVisiblePosition(); View vie ...
- 【Android】ListView监听上下滑动(判断是否显示返回顶部按钮
设置滚动监听判断ListView的滚动方向同时获取屏幕高度.ListView实际高度,判断是否需要展示返回顶部按钮 package com.zihao.activity; import java. ...
随机推荐
- 机器学习技法笔记:10 Random Forest
Roadmap Random Forest Algorithm Out-Of-Bag Estimate Feature Selection Random Forest in Action Summar ...
- Python函数——装饰器
前言 给下面的函数加上运行时间 def fib(n): a, b = 0, 1 for i in range(n): print(b) a, b = b, a+b return b a = fib(5 ...
- Base 64 加密、解密
1.写一个公共类 package com.boyutec.oss.sys.utils; import java.io.UnsupportedEncodingException; import java ...
- docker的安装与启动
安装docker Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的.在很多版本的CentOS中是不支 ...
- Xamarin.Android 关于so包报错问题
问题描述:使用so包时报错. 解决方法: 1.保证 libs > armeabi 和 armeabi-v7a 中的so包一致. 2.去掉 x86,x86_64,arm64-v8a. 3. so的 ...
- linux系统中的文件权限详解(转)
一.在<Linux系统中如何查看文件属性>中介绍了通过ls指令来查看文件的属性,具体如下: [命令] letuknowit@ubuntu:/$ cd /tmp letuknowit@ubu ...
- Android_性能优化转载
胡凯 RSS Blog Archives Android Training in Chinese About Android性能优化典范 JAN 17TH, 2015 | COMMENTS 2015年 ...
- JAR(Spring Boot)应用的后台运行配置
酱油一篇,整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式: 运行Spring Boot的应用主类 使用Mave ...
- TCP/IP 笔记 - 链路层
链路层的目的是为IP模块发送和接收IP数据报. 以太网和IEEE 802局域网标准 以太网指的是一套标准,有DEC.Intel公司和Xerox公司在1980年首次发布,并在1982年加以修订.第一个常 ...
- mybatis中动态SQL之trim详解
一. 背景 之前mybatis中<where>.<update>.<if>.<foreach>标签用的多,知道有<trim>这个标签,但很少 ...