Android下拉/上拉刷新ListView之Android-PullToRefresh

妖狐艹你老母 2023-10-16 21:16 135阅读 0赞



Android下拉/上拉刷新ListView之Android-PullToRefresh

Android下拉和上拉刷新ListView列表内容的的一个优秀开源框架,在github上的项目链接地址:https://github.com/chrisbanes/Android-PullToRefresh

该PullToRefresh第三方控件功能强大,使用方便。
具体使用方法:

(1)首先到github上把该项目下载解压,导入到Eclipse的工程中。
(2)将Android-PullToRefresh作为一个lib引用到自己的项目中。
然后直接使用即可。
现在给出一个Demo。

  1. package zhangphil.pulltorefresh;
  2. import java.util.LinkedList;
  3. import com.handmark.pulltorefresh.library.PullToRefreshBase;
  4. import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
  5. import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
  6. import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
  7. import com.handmark.pulltorefresh.library.PullToRefreshListView;
  8. import android.support.v7.app.ActionBarActivity;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.ListView;
  11. import android.widget.Toast;
  12. import android.os.Bundle;
  13. import android.os.Handler;
  14. public class MainActivity extends ActionBarActivity {
  15. private PullToRefreshListView mPullRefreshListView;
  16. private LinkedList<String> mListItems;
  17. private ArrayAdapter<String> mAdapter;
  18. // 数据
  19. private int DATA = 0;
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
  25. // Mode.BOTH:支持下拉和上拉刷新。
  26. mPullRefreshListView.setMode(Mode.BOTH);
  27. mPullRefreshListView
  28. .setOnRefreshListener(new OnRefreshListener2<ListView>() {
  29. // 下拉
  30. @Override
  31. public void onPullDownToRefresh(
  32. PullToRefreshBase<ListView> refreshView) {
  33. Toast.makeText(getApplicationContext(), "下拉刷新",
  34. Toast.LENGTH_SHORT).show();
  35. addItem();
  36. }
  37. // 上拉
  38. @Override
  39. public void onPullUpToRefresh(
  40. PullToRefreshBase<ListView> refreshView) {
  41. Toast.makeText(getApplicationContext(), "上拉刷新",
  42. Toast.LENGTH_SHORT).show();
  43. addItem();
  44. }
  45. });
  46. // 列表到底,即看到最后一个元素。
  47. mPullRefreshListView
  48. .setOnLastItemVisibleListener(new OnLastItemVisibleListener() {
  49. @Override
  50. public void onLastItemVisible() {
  51. Toast.makeText(getApplication(), "已经到底!",
  52. Toast.LENGTH_SHORT).show();
  53. }
  54. });
  55. ListView actualListView = mPullRefreshListView.getRefreshableView();
  56. mListItems = new LinkedList<String>();
  57. mAdapter = new ArrayAdapter<String>(this,
  58. android.R.layout.simple_list_item_1, mListItems);
  59. actualListView.setAdapter(mAdapter);
  60. }
  61. // 添加数据
  62. private void addItem() {
  63. new Handler().postDelayed(new Runnable() {
  64. @Override
  65. public void run() {
  66. mListItems.add((DATA++) + "");
  67. mAdapter.notifyDataSetChanged();
  68. mPullRefreshListView.onRefreshComplete();
  69. }
  70. }, 1000);
  71. }
  72. }

需要的activity_main.xml

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="match_parent"
  3. android:layout_height="match_parent" >
  4. <com.handmark.pulltorefresh.library.PullToRefreshListView
  5. android:id="@+id/pull_refresh_list"
  6. android:layout_width="match_parent"
  7. android:layout_height="match_parent"
  8. android:divider="@android:color/black"
  9. android:dividerHeight="1dip"
  10. android:fastScrollEnabled="false"
  11. android:footerDividersEnabled="false"
  12. android:headerDividersEnabled="false"
  13. android:smoothScrollbar="true" />
  14. </RelativeLayout>

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android ListView刷新

    ListView的重要性我就不多说了,下拉刷新的功能以前一直用的别人的,这两天参考一些资料自己写了个ListView下拉刷新的控件,自己会写才能掌握在自己手里,以后扩展什么的,