【发布时间】:2020-04-21 15:01:46
【问题描述】:
我有一个嵌套的RecyclerViews,并且这个 recyclerView 的每一行/项目也是一个 recyclerView,并且有一个外部事件将更新内部 recyclerView 中的一个项目。
我的外层 RecyclerView 适配器的 onBindViewHolder 是这样的
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
GiftWrappingHorizontalViewHolder viewHolder = (GiftWrappingHorizontalViewHolder) holder;
viewHolder.giftWrappingRecyclerView.setLayoutManager(new LinearLayoutManager(viewHolder.giftWrappingRecyclerView.getContext(),
RecyclerView.HORIZONTAL, false));
viewHolder.topTextView.setText(dataList.get(position).getTopTextName());
if(dataList.get(position).getType() == 1) {
GiftWrappingHorizontalAdapter adapter = new GiftWrappingHorizontalAdapter(dataList.get(position)
.getItems(), position);
viewHolder.giftWrappingRecyclerView.setAdapter(adapter);
viewHolder.giftWrappingRecyclerView.setItemAnimator(null);
adapter.setGiftWrappingHorizontalClickListener(giftWrappingHorizontalClickListener);
} else if(dataList.get(position).getType() == 0){
GiftWrappingAddOnsAdapter adapter = new GiftWrappingAddOnsAdapter(dataList.get(position)
.getItems(), position);
viewHolder.giftWrappingRecyclerView.setAdapter(adapter);
viewHolder.giftWrappingRecyclerView.setItemAnimator(null);
adapter.setGiftWrappingAddOnEventsListener(giftWrappingAddOnEventsListener);
}
}
如您所见,我将内部 recyclerViews 绑定到 onBindViewHolder 内的适配器 我想在不调用 notifyItemChanged 的情况下更新内部 recyclerView 的特定项目,因为这将重新创建分页的内部适配器,并且它只会调用第一页,因为内部 RecyclerViews 正在使用 HORIZONTAL LinearLayoutManager 。
有没有办法通过按位置访问recyclerView 的项目并将notifiyItemChanged 调用到内部RecyclerView 来实现?
【问题讨论】:
标签: java android android-recyclerview