Library下载地址:
https://github.com/chrisbanes/Android-PullToRefresh

版本:Android-PullToRefresh-2.1.1

(1) 设置Listview
layout文件中定义PullToRefreshListView

<com.handmark.pulltorefresh.library.PullToRefreshListView    android:id="@+id/list_view"    android:layout_width="match_parent"    android:layout_height="match_parent" />


(2)设置Mode

PullToRefreshListView mListView = (PullToRefreshListView) findViewById(R.id.list_view);mListView.setMode(Mode.BOTH);


  • Mode.BOTH:同时支持上拉下拉
  • Mode.PULL_FROM_START:只支持下拉Pulling Down
  • Mode.PULL_FROM_END:只支持上拉Pulling Up


(3)实现Listener

如果Mode设置成Mode.BOTH,需要设置刷新Listener为OnRefreshListener2,并实现onPullDownToRefresh()、onPullUpToRefresh()两个方法。

如果Mode设置成Mode.PULL_FROM_START或Mode.PULL_FROM_END,需要设置刷新Listener为OnRefreshListener,同时实现onRefresh()方法。当然也可以设置为OnRefreshListener2,但是Mode.PULL_FROM_START的时候只调用onPullDownToRefresh()方法,Mode.PULL_FROM的时候只调用onPullUpToRefresh()方法.

(4)举例
public class MainActivity extends Activity {private ArrayList<String> mListItems;    private PullToRefreshListView mListView;    private SampleListAdapter mAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.sample);                // 设置初期数据        mListItems = new ArrayList<String>();    for (int i = 1; i <= 10; i++) {    mListItems.add("Item " + Integer.toString(i));    }        // 设置ListView        mListView = (PullToRefreshListView) findViewById(R.id.list_view);        mAdapter = new SampleListAdapter();        mListView.setAdapter(mAdapter);                // 设置PullToRefresh        mListView.setMode(Mode.BOTH);        mListView.setOnRefreshListener(new OnRefreshListener2<ListView>(){         // 下拉Pulling Down            @Override            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {            // 下拉的时候数据重置                mListItems = new ArrayList<String>();            for (int i = 1; i <= 10; i++) {            mListItems.add("Item " + Integer.toString(i));            }            mAdapter.notifyDataSetChanged();                            new FinishRefresh().execute();            }                        // 上拉Pulling Up            @Override            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {            // 上拉的时候添加选项                int count = mListItems.size();                mListItems.add("Item " + Integer.toString(++count));                mAdapter.notifyDataSetChanged();                                new FinishRefresh().execute();            }         });            }        private class SampleListAdapter extends BaseAdapter {             @Override        public int getCount() {            return mListItems.size();        }         @Override        public Object getItem(int index) {            return mListItems.get(index);        }         @Override        public long getItemId(int index) {            return index;        }         @Override        public View getView(int index, View view, ViewGroup arg2) {            if(view == null){                LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);                view = inflater.inflate(R.layout.list_item, null);            }            TextView textView = (TextView)view.findViewById(R.id.listItemText);            textView.setText(mListItems.get(index));            return view;        }    }     private class FinishRefresh extends AsyncTask<Void, Void, Void>{        @Override        protected Void doInBackground(Void... params) {            return null;        }         @Override        protected void onPostExecute(Void result){            mListView.onRefreshComplete();        }    }}


初期:
Android UI列表的上拉下拉刷新之Android-PullToRefresh

上拉:
Android UI列表的上拉下拉刷新之Android-PullToRefresh

上拉后:
Android UI列表的上拉下拉刷新之Android-PullToRefresh

下拉:
Android UI列表的上拉下拉刷新之Android-PullToRefresh

下拉后:
Android UI列表的上拉下拉刷新之Android-PullToRefresh

更多相关文章

  1. 【从头学android】第二个程序同一个Activity中,切换布局时监听器
  2. JS或TS调用原生Android的方法
  3. 安装Android studio出现'tools.jar' seems to be not in Android
  4. Android 屏幕旋转后防止重新执行onCreate的方法。
  5. 【Android】‘activity supporting action_view is not set as b
  6. Android中完全退出程序的四种方法
  7. 第二十篇 Android获取本机图片、音频、视频、文档以及本地文件夹
  8. Android Activity启动和退出过程中onResume()方法的回调

随机推荐

  1. Android(安卓)版本区别
  2. php数据类型
  3. android Ubuntu adb: cannot execute bin
  4. Android使用ThreadLocal+PriorityQueue构
  5. Android(安卓)EditText 点击时不弹出键盘
  6. Android(安卓)Studio安装教程及第一个Hel
  7. Android(安卓)说说钟表控件
  8. Android中Fragment的使用,切换和返回等问
  9. Android(安卓)震动示例--心跳效果
  10. android sdk 无法通过代理更新包