Android:RecycleView

相关视频:尚硅谷Android视频《RecyclerView》

相关文章:【进阶】RecyclerView源码解析(一)——绘制流程

一、简介

RecycleView是Listview和GridView的替代者,在support-v7版本中提供支持。

RecycleView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同的LayoutManager,ItemDecoration,ItemAnimator实现令人炫目的效果。

Listview和GridView能做的RecycleView都能做,并且能实现瀑布流效果。

二、使用

1、关联:implementation 'com.android.support:recyclerview-v7:27.1.1'

2、在布局文件中加入recyclerview

3、设置Adapter。注意:继承RecyclerView.Adapter<RvAdapter1.ViewHolder1>,需要自己写一个viewholder。

//设置RecyclerView的适配器
        mAdapter = new RvAdapter1(this, datas);
        recyclerView.setAdapter(mAdapter);
public class RvAdapter1 extends RecyclerView.Adapter<RvAdapter1.ViewHolder1> {

    private final Context context;
    private ArrayList<String> datas;

    public RvAdapter1(Context context, ArrayList<String> datas) {
        this.context = context;
        this.datas = datas;
    }

    /**
     * 类似于 getView() 创建View 和 ViewHolder
     */
    @NonNull
    @Override
    public ViewHolder1 onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = View.inflate(context, R.layout.item_rv1, null);
        return new ViewHolder1(itemView);
    }

    /**
     * 类似于 getView()绑定数据部分的代码
     * 数据和 View 绑定
     */
    @Override
    public void onBindViewHolder(@NonNull ViewHolder1 holder, int position) {
        //根据位置得到对应的数据
        String data = datas.get(position);
        holder.tvTitle.setText(data);
    }

    /**
     * 类似于 getCount()
     */
    @Override
    public int getItemCount() {
        return datas.size();
    }

    class ViewHolder1 extends RecyclerView.ViewHolder {

        private ImageView ivCoin;
        private TextView tvTitle;

        public ViewHolder1(View itemView) {
            super(itemView);
            ivCoin = itemView.findViewById(R.id.iv_coin);
            tvTitle = itemView.findViewById(R.id.tv_title);
        }
    }


}

4、设置LayoutManager,setLayoutManager

         /**
         * LayoutManager 不写LayoutManager 是不会显示的,该段代码用于设置显示方式:list、grid还        
            是flow
         * new LinearLayoutManager() 设置为list格式
         */
        recyclerView.setLayoutManager(new LinearLayoutManager(this,
                LinearLayoutManager.HORIZONTAL, false));

猜你喜欢

转载自blog.csdn.net/songzi1228/article/details/88994521
今日推荐