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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!