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())
以此判断动态加载数据!