我有一个用例,我需要从适配器内部引用父 RecyclerView
,特别是在 onBindViewHolder
方法内 . 到目前为止,我正在做的是将它分配给 onCreateViewHolder
方法中的私有类成员传递 viewGroup parent
arg,如下所示:
private ViewGroup mParent;
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// inflater logic.
mParent = parent;
}
并在 onBindViewHolder
中引用父 RecyclerView
,如下所示:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// binder logic.
((RecyclerView)mParent).blahBlahBlah();
}
有没有更好的方法呢?也许 RecyclerView.Adapter
有一种我可能错过的方式?
3 回答
实际上有一个特定的方法,使用附加到适配器的RecyclerView进行回调 . 只需覆盖onAttachedToRecylerView()方法即可 .
可能你想在viewHolder中创建一个接口并传递给父接口并在那里实现它 .
另一种方法是在构造函数中传递引用,例如