zoukankan      html  css  js  c++  java
  • 刷新实现原理

    package com.zzw.testrefresh;
    
    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.widget.AbsListView;
    import android.widget.AbsListView.OnScrollListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class MainActivity extends Activity implements OnScrollListener {
    
        private ArrayList<String> data;
        private ArrayAdapter<String> adapter;
    
        private int firstVisibleItem;
        private int visibleItemCount;
        private int totalItemCount;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            data = new ArrayList<String>();
            for (int i = 0; i < 20; i++) {
                data.add("原有数据--" + i);
            }
    
            ListView mListView = (ListView) findViewById(R.id.listView);
    
            adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
    
            mListView.setAdapter(adapter);
    
            mListView.setOnScrollListener(this);
        }
    
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            if (OnScrollListener.SCROLL_STATE_IDLE == scrollState) {
    
                if (firstVisibleItem == 0) {
                    addTop();
                }
    
                if (firstVisibleItem + visibleItemCount == totalItemCount) {
                    addBottom();
                }
    
            }
        }
    
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            this.firstVisibleItem = firstVisibleItem;
            this.visibleItemCount = visibleItemCount;
            this.totalItemCount = totalItemCount;
        }
    
        private void addTop() {
            data.add(0, "头部添加数据--" + (totalItemCount + 1));
            adapter.notifyDataSetChanged();
        }
    
        private void addBottom() {
            data.add("尾部添加数据--" + (totalItemCount + 1));
            adapter.notifyDataSetChanged();
        }
    
    }
  • 相关阅读:
    ubuntu下怎么配置/查看串口-minicom工具
    jpg与pgm(P5)的互相转换(Python)
    hyper-v安装ubuntu18的全过程+踩过的坑(win10家庭版)
    zerotier的下载、安装、配置与使用(win10、ubuntu)
    github page+jekyll构建博客的解决方案
    opencv2.4.13.7的resize函数使用(c++)
    c++中的const和volatile知识自我总结
    各种优化算法详解
    P与NP问题
    vs2017配置pthread.h的方法
  • 原文地址:https://www.cnblogs.com/zzw1994/p/5048995.html
Copyright © 2011-2022 走看看