1.編寫布局文件 SwipeView是V4包里的,可系統直接導包使用。 activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:id="@+id/swipeView"android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.soft.qianyu.swipeviewdemo.MainActivity"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView></android.support.v4.widget.SwipeRefreshLayout>2,編寫ListView的item布局文件 這里只是簡單的使用listview,所以使用的是ArrayAdapter,不需要單獨寫item布局文件,使用的是系統的android.R.layout.simple_list_item_1
布局文件。
3,在Activity中編寫獲得控件相應的控件并進行操作 MainActivity.java
public class MainActivity extends AppCompatActivity { //1.聲明各個變量 //聲明Listview、數組適配器ArrayAdapter、數據源ArrayList ListView lv; ArrayAdapter<String> adapter; ArrayList<String> datas; //聲明下拉刷新的標記,根據這個來判斷加載哪一組數據。 boolean flag = true; //聲明刷新控件swipview SwipeRefreshLayout swipeView; @Override PRotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } //2.初始化各個控件 private void init() {//初始化listview、數據源、獲取初始數據lv = (ListView) findViewById(R.id.lv);datas = new ArrayList<String>();getData();//初始化適配器:/*第一個參數是當前上下文*第二個參數是系統默認的listviewItem布局*第三個參數是數據源*/adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,datas);//為Listview設置適配器lv.setAdapter(adapter);//3.以下代碼是對SwipeView的操作swipeView = (SwipeRefreshLayout) findViewById(R.id.swipeView); //修改進度條的背景顏色swipeView.setProgressBackgroundColorSchemeColor(Color.GRAY); //修改進度條的顏色(若數據很多,可以轉一圈換一個顏色) swipeView.setColorSchemeColors(Color.YELLOW,Color.GREEN); //為swipeView設置下拉監聽(只有設置監聽了才能修改數據)swipeView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { //刷新listview之前先清空數據源 datas.clear(); //根據flag的值來確定加載哪一組數據 if (flag){ refresh(); }else { getData(); } //修改數據后要通知控件的適配器數據改變了! adapter.notifyDataSetChanged(); //重新設置flag的值,要不然達不到刷新效果 flag =!flag; //刷新結束,關閉刷新效果 swipeView.setRefreshing(false); } }); } private void getData() { datas.add("趙云"); datas.add("關羽"); datas.add("曹操"); datas.add("呂布"); datas.add("貂蟬"); datas.add("西施"); datas.add("李師師"); } private void refresh() { datas.add("常勝將軍"); datas.add("漢壽亭候"); datas.add("奸雄"); datas.add("三國無雙"); datas.add("三國新聞熱點
疑難解答