RecyclerView 小记

简介: RecyclerView,是在v7包加入的,一个灵活的view可以展示巨大的数据集,类似于listview的viewholder复用已经优化好了。   语言是苍白的,代码是最生动的叙说:   布局:      adapter: package com.

RecyclerView,是在v7包加入的,一个灵活的view可以展示巨大的数据集,类似于listview的viewholder复用已经优化好了。

 

语言是苍白的,代码是最生动的叙说:

 

布局:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.main.MainActivity"
    android:padding="12dp"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:overScrollMode="never"
        android:clipToPadding="false"/>

    <ProgressBar
        android:id="@+id/progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:visibility="gone"
        />

</FrameLayout>

  

 

adapter:

package com.escorps.retrodagger.adapter;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.escorps.retrodagger.R;
import com.escorps.retrodagger.models.PetModel;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{

    private List<PetModel> items;

    public void setItems(List<PetModel> items){
        this.items = items;
    }

    @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycler, parent, false);
        return new ViewHolder(v);
    }

    @Override public void onBindViewHolder(final ViewHolder holder, int position) {
        final PetModel item = items.get(position);

        holder.textName.setText(item.getName());

        holder.itemView.setTag(item);
    }

    @Override public int getItemCount() {
        return items.size();
    }

    protected static class ViewHolder extends RecyclerView.ViewHolder {

        @InjectView(R.id.textName) TextView textName;

        public ViewHolder(View itemView) {
            super(itemView);
            
            ButterKnife.inject(this, itemView);
        }
    }

}
View Code

 

注意在使用adapter之前: recyclerView.setLayoutManager(new GridLayoutManager(this, 1));

目录
相关文章
|
搜索推荐 Java 开发工具
RecyclerView的那点事儿
RecyclerView的那点事儿
81 0
|
前端开发 Android开发
RecyclerView实现吸底效果—ItemDecoration
RecyclerView实现吸底效果—ItemDecoration
SwipeRefreshLayout与RecyclerView的巧夺天工(二)
SwipeRefreshLayout与RecyclerView的巧夺天工(二)
70 0
SwipeRefreshLayout与RecyclerView的巧夺天工(二)
RecyclerView与CardView的使用(二)
RecyclerView与CardView的使用(二)
114 0
RecyclerView与CardView的使用(二)
|
开发工具 Android开发
RecyclerView与CardView的使用(一)
RecyclerView与CardView的使用(一)
143 0
RecyclerView与CardView的使用(一)
RecyclerView学习-RecyclerView#Adapter#notifyDataSetChanged是如何更新数据的?
RecyclerView学习-RecyclerView#Adapter#notifyDataSetChanged是如何更新数据的?
SwipeRefreshLayout与RecyclerView的巧夺天工(一)
SwipeRefreshLayout与RecyclerView的巧夺天工(一)
80 0
|
Java 容器
【RecyclerView】二、RecyclerView 简介 ( RecyclerView 特点 | RecyclerView 涉及到的类 )
【RecyclerView】二、RecyclerView 简介 ( RecyclerView 特点 | RecyclerView 涉及到的类 )
176 0
|
存储 缓存 Java
RecyclerView问题汇总
目录介绍 25.0.0.0 请说一下RecyclerView?adapter的作用是什么,几个方法是做什么用的?如何理解adapter订阅者模式? 25.0.0.1 ViewHolder的作用是什么?如何理解ViewHolder的复用?什么时候停止调用onCreateViewHolder? 25.
3036 0