Android OnScrollListener
- getListView().setOnScrollListener(onScrollListener);
- AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
- boolean flag = false;
- @Override
- public void onScrollStateChanged(AbsListView absListView, int scrollState) {
- if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { //触屏滑动中
- if (flag) {
- LinearLayout linearLayout = (LinearLayout) Checkin_context.findViewById(R.id.loadcheckin);
- if (linearLayout.getVisibility() == View.GONE && linearLayout != null) {
- linearLayout.setVisibility(View.VISIBLE);
- }
- getData(false);
- }
- }
- }
- @Override
- public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- Log.v(TAG,firstVisibleItem+","+visibleItemCount+","+totalItemCount+"|"+getListView().getFirstVisiblePosition()+","+getListView().getLastVisiblePosition());
- if (firstVisibleItem + visibleItemCount == totalItemCount && !flag) {
- flag = true;
- } else
- flag = false;
- }
- };
因为我是直接extends ListActivity,在ListActivity中本身自带了一个Listview,所以可以直接getlistview
唯一要讲的就是在 OnScroll中firstVisibleItem + visibleItemCount == totalItemCount
firstVisibleItem :表示在屏幕中第一条显示的数据在adapter中的位置,visibleItemCount 则是屏幕中最后一条数据在adapter中的数据,totalItemCount则是adapter中的总条数!
adapter(适配器)我们把其看做是一个list集合,可以在其中add很多的数据!而在屏幕中显示的数据,
只是这个集合中的一部分!firstVisibleItem +visibleItemCount = 这个集合总条数(list.size())
以此判断动态加载数据!