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

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

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

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

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

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

import java.util.LinkedList;  
  
import com.handmark.pulltorefresh.library.PullToRefreshBase;  
import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;  
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;  
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;  
import com.handmark.pulltorefresh.library.PullToRefreshListView;  
  
import android.support.v7.app.ActionBarActivity;  
import android.widget.ArrayAdapter;  
import android.widget.ListView;  
import android.widget.Toast;  
import android.os.Bundle;  
import android.os.Handler;  
  
public class MainActivity extends ActionBarActivity {  
  
    private PullToRefreshListView mPullRefreshListView;  
    private LinkedList<String> mListItems;  
    private ArrayAdapter<String> mAdapter;  
  
    // 数据  
    private int DATA = 0;  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);  
  
        // Mode.BOTH:支持下拉和上拉刷新。  
        mPullRefreshListView.setMode(Mode.BOTH);  
  
        mPullRefreshListView  
                .setOnRefreshListener(new OnRefreshListener2<ListView>() {  
  
                    // 下拉  
                    @Override  
                    public void onPullDownToRefresh(  
                            PullToRefreshBase<ListView> refreshView) {  
                        Toast.makeText(getApplicationContext(), "下拉刷新",  
                                Toast.LENGTH_SHORT).show();  
  
                        addItem();  
                    }  
  
                    // 上拉  
                    @Override  
                    public void onPullUpToRefresh(  
                            PullToRefreshBase<ListView> refreshView) {  
                        Toast.makeText(getApplicationContext(), "上拉刷新",  
                                Toast.LENGTH_SHORT).show();  
  
                        addItem();  
                    }  
                });  
  
        // 列表到底,即看到最后一个元素。  
        mPullRefreshListView  
                .setOnLastItemVisibleListener(new OnLastItemVisibleListener() {  
  
                    @Override  
                    public void onLastItemVisible() {  
                        Toast.makeText(getApplication(), "已经到底!",  
                                Toast.LENGTH_SHORT).show();  
                    }  
                });  
  
        ListView actualListView = mPullRefreshListView.getRefreshableView();  
  
        mListItems = new LinkedList<String>();  
        mAdapter = new ArrayAdapter<String>(this,  
                android.R.layout.simple_list_item_1, mListItems);  
        actualListView.setAdapter(mAdapter);  
    }  
  
    // 添加数据  
    private void addItem() {  
  
        new Handler().postDelayed(new Runnable() {  
  
            @Override  
            public void run() {  
                mListItems.add((DATA++) + "");  
  
                mAdapter.notifyDataSetChanged();  
                mPullRefreshListView.onRefreshComplete();  
            }  
        }, 1000);  
    }  
}  

需要的activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent" >  
          
        <com.handmark.pulltorefresh.library.PullToRefreshListView  
            android:id="@+id/pull_refresh_list"  
            android:layout_width="match_parent"  
            android:layout_height="match_parent"  
           
            android:divider="@android:color/black"  
            android:dividerHeight="1dip"  
              
            android:fastScrollEnabled="false"  
            android:footerDividersEnabled="false"  
            android:headerDividersEnabled="false"  
            android:smoothScrollbar="true" />  
    </RelativeLayout>  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:ScreenUtils 可用于获取屏幕宽高,截屏的工具类

下一篇:SPUtils SharedPreferences工具类