Android之RecyclerView简单使用(一)

RecyclerView出来有一段时间了,每当问道关于ListView的问题时,小伙伴们就说为什么不用RecyclerView呢?后来研究了一下,发现这个控件很强大,快过年了,公司滴事情比较多,祝大家新春快乐,下面简单介绍它的使用方法,后面的使用年后更新,谢谢大家的支持。
RecyclerView可以说是ListView的升级版,虽说是升级版,但也有不完美滴地方,就是点击监听和长按监听需要自己写,优点就是给了用户很大的自定义空间。
使用Android Studio的用户需要添加依赖包,首先我们右击项目–>Open Module Settings然后选择如图:
Android之RecyclerView简单使用(一)_第1张图片
然后我们点击右边那个绿色的加号
Android之RecyclerView简单使用(一)_第2张图片
选择第一个,会出现下面这个对话框,我们输入RecyclerView进行搜索,选择如图那个依赖包:
Android之RecyclerView简单使用(一)_第3张图片
这样RecyclerView的依赖包就导入了。
这样我们就可以在布局中这样写了:

<android.support.v7.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none" />

我们用过ListView滴小伙伴都知道,ListView需要绑定Adapter,RecyclerView也不例外也需要适配器,不过它和ListView却不一样。来看一下吧!

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

    private List<Integer> mData;
    private Context mContext;

public RecyclerViewAdapter(Context context, List<Integer> mData) {
        this.mContext = context;
        this.mData = mData;
    }


    @Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(
        ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(mContext)
        .inflate(R.layout.recyclerview_item, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        viewHolder.imageView 
        = (ImageView) view.findViewById(R.id.img_picture);

        return viewHolder;
    }

    //设置数据
    @Override
public void onBindViewHolder(
        RecyclerViewAdapter.ViewHolder holder, int position) {
        holder.imageView.setImageResource(mData.get(position));

    }

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

public class ViewHolder extends RecyclerView.ViewHolder {
       public ViewHolder(View itemView) {
            super(itemView);
        }

        ImageView imageView;
    }
}

细心地小伙伴会发现,它不在继承BaseAdapter而是继承RecyclerView.Adapter<类名.ViewHolder>,在里面我们需要把ViewHolder继承RecyclerView.ViewHolder然后实现其方法。
RecyclerView对ViewHolder进行了处理,使其就有很大滴解耦。在onCreateViewHolder方法里,返回的不在是View而是ViewHolder,这里它把View进行绑定到了ViewHolder,结果在onBindViewHolder里面处理。
在代码中我们需要这么处理:

RecyclerView recyclerView 
             = (RecyclerView) findViewById(R.id.recycler); LinearLayoutManager linearLayoutManager 
             = new LinearLayoutManager(mContext);             linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
 //设置布局管理器
             recyclerView.setLayoutManager(linearLayoutManager);
 //绑定适配器
RecyclerViewAdapter adapter
             = new RecyclerViewAdapter(mContext, mData);              recyclerView.setAdapter(adapter);

RecyclerView可以设置显示方式通过布局管理器。
看一下效果图:

其实它还有其他功能,这里先不说了。如有疑问,可以给我留言!
友情链接

你可能感兴趣的:(android,viewpager,Recycler)