Android UI入门(第三篇:RecyclerView控件的使用)

前面我们见过ListView 使用 这里对比ListView 来学习RecyclerView。
首先RecyclerView也需要一个Adapter只是相对于之前的复杂一点点
这里使用了ViewHolder这个模式。
今天讲讲如何具体使用把
先看源码

public class StoriesAdapter extends RecyclerView.Adapter {
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return null;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

    }

    @Override
    public int getItemCount() {
        return 0;
    }

}

首先继承关系RecyclerView.Adapter
这个类似我们之前的BaseAdapter
我们添加一个构造方法,传人一个list跟值钱的ListView的用法一样

   private List mList;
    private Context mContext;

    public StoriesAdapter(Context context, ArrayList list) {
        this.mList = list;
        this.mContext = context;
     }

这样写是因为Adapter一般都会关联一个list这样传人是一个比较简单的方式。
我们根据上面的代码直接改造一个我们项目正在用的Adapter


public class StoriesAdapter extends RecyclerView.Adapter {

    private List mList;
    private Context mContext;

    public StoriesAdapter(Context context, ArrayList list) {
        this.mList = list;
        this.mContext = context;
    }

    //自定义的ViewHolder,持有每个Item的的所有界面元素
    public static class StoryViewHolder extends RecyclerView.ViewHolder {
        public TextView tv_story_title;
        public ImageView iv_story;

        public StoryViewHolder(View view) {
            super(view);
            tv_story_title = view.findViewById(R.id.tv_story_title);
            iv_story = view.findViewById(R.id.iv_story);
        }
    }

    @Override
    public StoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.item_story, parent, false);
        return new StoryViewHolder(view);
    }

    @Override
    public void onBindViewHolder(StoryViewHolder holder, int position) {
        StoryBean story = mList.get(position);
        holder.tv_story_title.setText(mList.get(position).getTitle());
        holder.iv_story.setImageResource(R.mipmap.one_piece);
//        Glide.with(mContext).load(mList.get(position).getImages().get(0)).into(holder.iv_story);

    }

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

整个Adapter的源码大概就是这个样子了
看看如何使用把

       RecyclerView mRecyclerView = (RecyclerView)findViewById(R.id.base_recycle);
//创建默认的线性LayoutManager
       LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
       mRecyclerView.setLayoutManager(mLayoutManager);
//如果可以确定每个item的高度是固定的,设置这个选项可以提高性能
       mRecyclerView.setHasFixedSize(true);
//创建并设置Adapter
       StoryAdapter mAdapter = new StoryAdapter(mContext,list);
       mRecyclerView.setAdapter(mAdapter);
   }

这个就是简单介绍下项目里如何RecyclerView ,现在没有具体讲解,对于新手,暂时先用listview 熟练之后,我会给出一个RecyclerView 的详细使用方法的。暂时先不用看

你可能感兴趣的:(Android UI入门(第三篇:RecyclerView控件的使用))