《android recyclerview的简单使用》

原创
2015/09/22 23:16
阅读数 379

首先是主要布局

<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、期望官方解决上拉加载更多的问题

展开阅读全文
打赏
0
4 收藏
分享
加载中
更多评论
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部