在 Android SDK 19.1 以上版本中,支持一个新的控件 SwipeRefreshLayout 下拉刷新的布局,继承自 ViewGroup ,在 support
v4 兼容包下。下面来看一下效果图,由于电脑不能截动图,我还在网上找了的一张动图,实际效果可能会受手机系统影响,我在真
机上测试下拉时显示的是一个类似 ProgressDialog 的效果。
先看一下布局文件:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:divider="#F0F0F0"
android:dividerHeight="5dp">
</ListView>
</android.support.v4.widget.SwipeRefreshLayout>
使用 SwipeRefreshLayout 很简单,直接引用 support v4 包下的 SwipeRefreshLayout 控件,再在 SwipeRefreshLayout 里面放入
想要刷新的控件,注意这里要是可以滚动的 View ,如 ScrollView 或 ListView 。
SwipeRefreshLayout 的主要方法如下:
setOnRefreshListener(new OnRefreshListener(){ }) :为布局添加一个 Listener。
setRefreshing(boolean) :显示或隐藏刷新进度条。
isRefreshing() :检查是否处于刷新状态。
setColorSchemeColors() :设置进度条的颜色主题,最多能设置四种。
实现代码如下:
swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipeRefresh);
swipeRefresh.setColorSchemeColors(Color.BLUE, Color.RED, Color.GREEN, Color.YELLOW);
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
swipeRefresh.setRefreshing(false);
}
}, 5000);
}
});