SwipeRefreshLayout 是在V4包里面,首先要先导入V4包,最新的V4包里面才有这控件
首先是布局
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipe_container" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:gravity="center" android:text="@string/hello_world" > </TextView> </ScrollView> </android.support.v4.widget.SwipeRefreshLayout>
SwipeRefreshLayout 中嵌入一个可滑动的控件,可以是scrollview 也可以是listview gridview
package com.example.swiperrefreshlayout; import android.os.Bundle; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.SuppressLint; import android.app.Activity; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener; import android.text.SpanWatcher; import android.view.Menu; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.Interpolator; import android.widget.TextView; @SuppressLint("NewApi") public class MainActivity extends Activity { SwipeRefreshLayout swiper; ObjectAnimator oa; TextView text; private Interpolator accelerator = new AccelerateInterpolator(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); swiper=(SwipeRefreshLayout) findViewById(R.id.swipe_container); swiper.setOnRefreshListener(new listener()); text=(TextView) findViewById(R.id.text); //显示或隐藏刷新进度条 swiper.setRefreshing(false); // 设置进度条的颜色主题,最多能设置四种 swiper.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); oa=ObjectAnimator.ofFloat(swiper, "rotationY", 0f,-180f); oa.setDuration(600); oa.setRepeatCount(1); oa.setRepeatMode(ObjectAnimator.REVERSE); oa.setInterpolator(accelerator); // Animation an=new Animation(); } class listener implements OnRefreshListener{ @Override public void onRefresh() { // TODO Auto-generated method stub oa.start(); if(swiper.isRefreshing()){ text.setText("正在刷新"); }else{ text.setText("停止刷新"); }; //swiper. } } }