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())
以此判断动态加载数据!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步