您的位置:首页 > 移动开发 > Android开发

Android之RecyclerView简单使用(一)

2016-02-02 10:58 627 查看
RecyclerView出来有一段时间了,每当问道关于ListView的问题时,小伙伴们就说为什么不用RecyclerView呢?后来研究了一下,发现这个控件很强大,快过年了,公司滴事情比较多,祝大家新春快乐,下面简单介绍它的使用方法,后面的使用年后更新,谢谢大家的支持。

RecyclerView可以说是ListView的升级版,虽说是升级版,但也有不完美滴地方,就是点击监听和长按监听需要自己写,优点就是给了用户很大的自定义空间。

使用Android Studio的用户需要添加依赖包,首先我们右击项目–>Open Module Settings然后选择如图:





然后我们点击右边那个绿色的加号





选择第一个,会出现下面这个对话框,我们输入RecyclerView进行搜索,选择如图那个依赖包:





这样RecyclerView的依赖包就导入了。

这样我们就可以在布局中这样写了:

[code]<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却不一样。来看一下吧!

[code]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里面处理。

在代码中我们需要这么处理:

[code]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可以设置显示方式通过布局管理器。

看一下效果图:




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

友情链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: