• Android OnScrollListener


    1. getListView().setOnScrollListener(onScrollListener);   
    2.   
    3.  AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {   
    4.         boolean flag = false;   
    5.   
    6.         @Override  
    7.         public void onScrollStateChanged(AbsListView absListView, int scrollState) {   
    8.             if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {      //触屏滑动中   
    9.                 if (flag) {   
    10.                     LinearLayout linearLayout = (LinearLayout) Checkin_context.findViewById(R.id.loadcheckin);   
    11.                     if (linearLayout.getVisibility() == View.GONE && linearLayout != null) {   
    12.                         linearLayout.setVisibility(View.VISIBLE);   
    13.                     }   
    14.                     getData(false);   
    15.                 }   
    16.   
    17.             }   
    18.         }   
    19.   
    20.         @Override  
    21.         public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {   
    22.             Log.v(TAG,firstVisibleItem+","+visibleItemCount+","+totalItemCount+"|"+getListView().getFirstVisiblePosition()+","+getListView().getLastVisiblePosition());   
    23.             if (firstVisibleItem + visibleItemCount == totalItemCount && !flag) {   
    24.                 flag = true;   
    25.             } else  
    26.                 flag = false;   
    27.         }   
    28.     };  

     因为我是直接extends ListActivity,在ListActivity中本身自带了一个Listview,所以可以直接getlistview

            唯一要讲的就是在 OnScroll中firstVisibleItem + visibleItemCount == totalItemCount

     firstVisibleItem :表示在屏幕中第一条显示的数据在adapter中的位置,visibleItemCount 则是屏幕中最后一条数据在adapter中的数据,totalItemCount则是adapter中的总条数!

          adapter(适配器)我们把其看做是一个list集合,可以在其中add很多的数据!而在屏幕中显示的数据,

     只是这个集合中的一部分!firstVisibleItem +visibleItemCount = 这个集合总条数(list.size())

       以此判断动态加载数据!

  • 相关阅读:
    Hibernate 查询,返回结果设置到DTO
    sqlserver计算时间差DATEDIFF 函数
    SQL语句 不足位数补0
    Redis详细用法
    windows下安装Redis并部署成服务
    Redis命令
    ajax请求在参数中添加时间戳
    JS获取子节点、父节点和兄弟节点的方法实例总结
    js关闭当前页面清除session
    Java面试题一览
  • 原文地址:https://www.cnblogs.com/lechance/p/4373347.html
Copyright © 2020-2023  润新知