Android 系統自帶下拉刷新 SwipeRefreshLayout
-
創建 布局文件:
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipe" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/listview" android:footerDividersEnabled="false" android:headerDividersEnabled="false" android:background="@android:color/darker_gray" /> </android.support.v4.widget.SwipeRefreshLayout>
此處 標簽 一定要寫 全稱:
android.support.v4.widget.SwipeRefreshLayout
否則 會出現 以下異常:
11-25 21:23:15.819 31408-31408/com.example.leonardo.bmobtest E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.leonardo.bmobtest/com.example.leonardo.bmobtest.SwipeRefreshActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class SwipeRefreshLayout
2. 在 Activity中使用:
.setColorSchemeResources(android.R.color.,android.R.color.,android.R.color.,android.R.color.);
3.設置 onRefresh 偵聽器:
.setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener() {
onRefresh() {
Handler().postDelayed(Runnable() {
run() {
.add(,+ Random());
.notifyDataSetChanged();
.setRefreshing();
}
}, );
}
});
即可實現,簡單 漂亮的 下拉刷新效果,以下為 Activity 全部代碼:
package com.example.leonardo.bmobtest;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import roboguice.activity.RoboActivity;
import roboguice.inject.InjectView;
/**
* Created by leonardo on 15/11/25.
*/
public class SwipeRefreshActivity extends RoboActivity{
@InjectView(R.id.swipe)
SwipeRefreshLayout swipeRefreshLayout;
@InjectView(R.id.listview)
ListView listView;
List<String> datas;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipe);
datas = new ArrayList<>();
for (int i=0;i<10;i++){
datas.add("item "+i);
}
adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,datas);
adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
swipeRefreshLayout.setColorSchemeResources(android.R.color.black,android.R.color.holo_orange_dark,android.R.color.holo_red_dark,android.R.color.holo_green_dark);
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
datas.add(0,"item new" + new Random(10));
adapter.notifyDataSetChanged();
swipeRefreshLayout.setRefreshing(false);
}
}, 4000);
}
});
}
}
此處使用的是 roboguice 依賴庫
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!