标签:
首先是主要布局
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recylerView" android:layout_width="wrap_content" android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView> </android.support.v4.widget.SwipeRefreshLayout>
然后是获取控件以及设置监听
findViewById...... //设置下拉刷新 swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { if(isrefreshing){//判断是否正在刷新 Log.d(TAG,"ignore manually update!"); } else{ do....... } } });
说了下拉刷新,那么就有上拉加载更多,其实个人觉得上拉加载更多RecyclerView以及SwipeRefreshLayout都没有做得很好,也是这个控件用起来不是很舒服的地方。简单的介绍一种方式
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); int lastVisibleItem = ((LinearLayoutManager) mLayoutManager).findLastVisibleItemPosition(); int totalItemCount = mLayoutManager.getItemCount(); //lastVisibleItem >= totalItemCount - 4 表示剩下4个item自动加载,各位自由选择 // dy>0 表示向下滑动 if (lastVisibleItem >= totalItemCount - 4 && dy > 0) { if(isLoadingMore){ Log.d(TAG,"ignore manually update!"); } else{ loadPage();//这里多线程也要手动控制isLoadingMore isLoadingMore = false; } } } });
总结:
1、新控件用起来是很舒服,但是很多功能没有全部书写好
2、期望官方解决上拉加载更多的问题
标签:
原文地址:http://my.oschina.net/u/1269023/blog/509818