首页 > 解决方案 > RecyclerView中被覆盖的方法是怎么调用的?

问题描述

请找到如下代码片段

public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> {

@Override
    public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item, parent, false);
        ExampleViewHolder evh = new ExampleViewHolder(v);
        return evh;
    }
}   

我正在关注一个在线教程RecyclerView + CardView,其中扩展的 Adapter 类RecyclerView.Adapter覆盖了一些方法,例如onCreateViewHolder. 但我没有找到这些方法被调用的地方。

我检查了 Android 文档,上面写着“布局管理器调用适配器的onCreateViewHolder()方法。该方法需要构造一个RecyclerView.ViewHolder并设置它用来显示其内容的视图。”

但是LinearLayoutManager没有显式调用该onCreateViewHolder方法。

我想知道如何从Viewholder类中调用重写的方法。

标签: androidandroid-recyclerview

解决方案


ViewHolder内部类的createViewHolder()调用onCreateViewHolder()方法创建一个新的RecyclerView.ViewHolder。


推荐阅读