《android recyclerview的簡單使用》

首先是主要佈局java

<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>

而後是獲取控件以及設置監聽android

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;
                    }
                }
            }
        });

總結:ide

    一、新控件用起來是很舒服,可是不少功能沒有所有書寫好
佈局

    二、指望官方解決上拉加載更多的問題
spa

相關文章
相關標籤/搜索