test

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())

   以此判断动态加载数据!

posted @ 2014-05-16 20:37  Lechance  阅读(218)  评论(0编辑  收藏  举报