初始化相關設置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()); } }); } } }