判断listview的滚动状态及在滚动中item显示位置的方法

在写listview的下拉刷新和上拉加载时,会遇到如下问题:
怎样判断listview滑动到了顶部或是底部?
下拉刷新时,一般只有当第一个item完全可见时,才处理下拉的逻辑,而上拉加载则处理方式比较多,可以在手指已经离开屏幕但listview由于惯性作用滑动到底部时自动加载,也可以在最底部显示一个按钮,点击加载,加载完成后,又将按钮置于新加载内容的最底部,还可以在最后一个item完全可见时处理手指滑动上拉的逻辑来进行加载,等等。
那么,再细化一点,第一个item完全可见和能见到一部分、最后一个item完全可见和仅仅能见到一部分分别需要怎么判断?如果一个listview的item数目很少,都不足以充满整个屏幕,显然第一个和最后一个item都是完全可见的,这时候,还需要处理下拉和上拉的逻辑?如果(不)需要,又该如何判断?本文将对listview的item显示状态做个简单总结,相信除了应用于下拉刷新和上拉加载之外,还会有其他价值。
demo非常简单,就是一个listview界面,主要来看自定义的HwgtListView这个类:
HwgtListView.java:
[java]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. public class HwgtListView extends ListView implements OnScrollListener {  
  2.     public HwgtListView(Context context, AttributeSet attrs) {    
  3.         super(context, attrs);   
  4.         setOnScrollListener(this);   
  5.      }  
  6.     @Override  
  7.     public void onScrollStateChanged(AbsListView view, int scrollState) {  
  8.         switch (scrollState) {  
  9.             case OnScrollListener.SCROLL_STATE_IDLE:  
  10.                 Log.d("HWGT"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值