SwipeRefreshLayout是实现下拉刷新功能的核心类(布局),①只要将 需要下拉刷新功能的控件,嵌入到SwipeRefreshLayout作为子控件即可(如RecyclerView需要下拉刷新功能,只需将RecyclerView添加到SwipeRefreshLayout布局里面即可),②最后具体的下拉刷新功能,要刷新什么,就在对应的Activity中实现了。
① 将 需要下拉刷新功能的控件,嵌入到SwipeRefreshLayout作为子控件(这里用RecyclerView)
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
② 最后具体的下拉刷新功能,要刷新什么,就在对应的Activity中实现了
public class MainActivity extends AppCompatActivity {
private SwipeRefreshLayout swipeRefresh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh); //获取SwipeRefreshLayout实例
swipeRefresh.setColorSchemeResources(R.color.colorPrimary);//下拉刷新进度条颜色
/* 设置下拉刷新这一动作的监听器 */
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() { //下拉事件触发后的回调
//具体刷新逻辑代码
}
});
}
首先,获取SwipeRefreshLayout控件的实例,然后调用它的swipeRefresh.setColorSchemeResources(R.color.colorPrimary);//下拉刷新进度条颜色,最后调用setOnRefreshListener(OnRefreshListener) 为SwipeRefreshLayout控件的实例添加下拉监听器OnRefreshListener,当触发下拉操作,会回调到下拉监听器OnRefreshListener的public void onRefresh()方法中,具体刷新什么,就在里面实现了。