下拉刷新是我们在浏览APP的时候使用非常平凡的功能,目前有多重比较优秀的刷新控件。其中的 SwipeRefreshLayout是Google自己在V4包中一个下拉刷新控件,简单易用。
控件的引用
import android.support.v4.widget.SwipeRefreshLayout;
控件效果
下面我们简述一下使用方式,比较简单
1)在XML布局文件中引用SwipeRefreshLayout,只能包含一个子控件
<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="match_parent">
</ListView>
</android.support.v4.widget.SwipeRefreshLayout>
2)在Activity中获取并绑定监听
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
listView = (ListView) findViewById(R.id.listview);
//设置刷新监听器
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
//实现刷新时间
@Override
public void onRefresh() {
Toast.makeText(MainActivity.this, "正在刷新数据", Toast.LENGTH_LONG).show();
//do something
//........
//设置刷新状态为取消状态,即完成刷新
swipeRefreshLayout.setRefreshing(false);
}
});
其中 OnRefreshListener是SwipeRefreshLayout的刷新监听器,需要重写其中的onRefresh()方法。
我们的数据刷新逻辑就放在onRefresh()中
其中的 swipeRefreshLayout.setRefreshing(false);设置刷新状态,当我们处理完数据的时候需要结束刷新,否则页面将始终处于刷新的状态