您好,登錄后才能下訂單哦!
這篇文章給大家介紹android中如何使用SwipeRefreshLayout下拉刷新組件,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
查看文檔,我們可以知道,在SwipRefreshLayout中存在一個接口,通過此接口我們可以監(jiān)聽滑動手勢,其實(shí)使用此組件最重要的步驟就是實(shí)現(xiàn)此接口的onRefresh方法,在此方法中實(shí)現(xiàn)數(shù)據(jù)的更新操作。如下:
接口中的方法:
1、setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener):設(shè)置手勢滑動監(jiān)聽器。
2、setProgressBackgroundColor(int colorRes):設(shè)置進(jìn)度圈的背景色。
3、setColorSchemeResources(int… colorResIds):設(shè)置進(jìn)度動畫的顏色。
4、setRefreshing(Boolean refreshing):設(shè)置組件的刷洗狀態(tài)。
5、setSize(int size):設(shè)置進(jìn)度圈的大小,只有兩個值:DEFAULT、LARGE
弄清楚API后,我們下面進(jìn)行實(shí)際編碼,首先先做布局,具體內(nèi)容如下:
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/swipeLayout" > <ListView android:id="@+id/mylist" android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.v4.widget.SwipeRefreshLayout>
Activity核心代碼如下:
swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipeLayout); swipeRefreshLayout.setColorSchemeResources(R.color.swipe_color_1, R.color.swipe_color_2, R.color.swipe_color_3, R.color.swipe_color_4); swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);; swipeRefreshLayout.setProgressBackgroundColor(R.color.swipe_background_color); //swipeRefreshLayout.setPadding(20, 20, 20, 20); //swipeRefreshLayout.setProgressViewOffset(true, 100, 200); //swipeRefreshLayout.setDistanceToTriggerSync(50); swipeRefreshLayout.setProgressViewEndTarget(true, 100); swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { new Thread(new Runnable() { @Override public void run() { data.clear(); for(int i=0;i<20;i++){ data.add("SwipeRefreshLayout下拉刷新"+i); } try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } mHandler.sendEmptyMessage(1); } }).start(); } }); //handler private Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: swipeRefreshLayout.setRefreshing(false); adapter.notifyDataSetChanged(); //swipeRefreshLayout.setEnabled(false); break; default: break; } } };
通過如上步驟,我們就實(shí)現(xiàn)了一個簡單的下拉刷新操作,在此基礎(chǔ)上,我們可以分析研究一下SwipeRefreshLayout是如何實(shí)現(xiàn)的。
通過源碼我們發(fā)現(xiàn)SwipeRefreshLayout中的兩個重要的屬性:
private MaterialProgressDrawable mProgress;
private CircleImageView mCircleView;
這兩個屬性正是用于實(shí)現(xiàn)進(jìn)度動畫效果的,在方法createProgressView中,我們看到mCircleView最終加入到了SwipeRefreshLayout中。
private void createProgressView() {
mCircleView = new CircleImageView(getContext(), CIRCLE_BG_LIGHT, CIRCLE_DIAMETER/2);
mProgress = new MaterialProgressDrawable(getContext(), this);
mProgress.setBackgroundColor(CIRCLE_BG_LIGHT);
mCircleView.setImageDrawable(mProgress);
mCircleView.setVisibility(View.GONE);
addView(mCircleView);
}
關(guān)于android中如何使用SwipeRefreshLayout下拉刷新組件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。