RecyclerView

初始化相關設置java

private RecyclerView mRecyclerView;
private LinearLayoutManager mLinrarLayoutManeger; // 佈局管理器
private SwipeRefreshLayout mSwipeRefreshLayout; // 下拉刷新
mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
mLayoutManager = new LinearLayoutManager(getActivity()); // 在此可設置顯示樣式
mRecyclerView.setLayoutManager(mLayoutManager);
mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh);
mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright); // 設置下拉刷新按鈕的顏色
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { // 監聽下拉事件
    @Override
    public void onRefresh() {
        mSwipeRefreshLayout.setRefreshing(false); // 關閉下拉按鈕
    }
});
 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { // 滾動到底部監聽器
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if (newState == RecyclerView.SCROLL_STATE_IDLE && lastVisibleItem + 1 == mAdapter.getItemCount()) {
//                    swipeRefreshLayout.setRefreshing(true);
                    Log.e(TAG, "onScrollStateChanged");
                }
            }
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                lastVisibleItem = mLayoutManager.findLastVisibleItemPosition();
            }
        });

 佈局文件android

 <android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe_refresh"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ></android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>

Gradle配置ide

compile "com.android.support:recyclerview-v7:23.0.1"

Adapter佈局

 
private final LayoutInflater mLayoutInflater;
public class NormalRecyclerViewAdapter extends RecyclerView.Adapter<NormalRecyclerViewAdapter.NormalViewHolder> {

     public NormalRecyclerViewAdapter (Context context) {
            mContext = context;

            mLayoutInflater = LayoutInflater.from(context);
        }
     @Override
     public NormalViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // 綁定佈局
          return new NormalTextViewHolder(mLayoutInflater.inflate(R.layout.adapter_celebrity_recyclerview, parent, false));
        }
    
        @Override
        public void onBindViewHolder(NormalTextViewHolder holder, int position) {// 綁定內容
                holder.nameTv.setText(names.get(position));
        }
   
        @Override
        public int getItemCount() {  // 返回item數
            return names == null ? 0 : names.size();
        }
    public static class NormalViewHolder extends RecyclerView.ViewHolder {
        public DraweeView photo;
        public TextView nameTv;
        NormalTextViewHolder(View view) {
            super(view);
            photo = (DraweeView) view.findViewById(R.id.iv_photo_sd);
            nameTv = (TextView) view.findViewById(R.id.tv_name);
            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.d("NormalTextViewHolder", "onClick--> position = " + getPosition());
                }
            });
        }
    }
}
相關文章
相關標籤/搜索