我正在查看RecyclerView Adapter的文档,发现我们有2个onBindViewHolder方法,其中一个有效负载列表,另一个没有。我假设第一个是更新项目布局的特定部分。
有谁知道如何实现这一目标?我试图通过调用带有我想要更改的视图ID的参数的notifyItemChanged方法来实现相同的目的,但它不起作用。任何帮助将不胜感激。
带有效负载的onBindViewHolder如下:
@Override
public void onBindViewHolder(OnAirProductViewHolder viewHolder, int position, List<Object> payloads) {
ProductData item = mData.get(position);
int id = -1;
if(payloads!=null && payloads.size()>0)
id = (int)payloads.get(0);
switch (id)
{
case R.id.item_current_price:
viewHolder.currentPrice.setText(item.DefaultEdpItem.DefaultPrice);
viewHolder.strikedOutPrice.setText(item.DefaultEdpItem.WasPrice);
break;
case R.id.item_link_text_line:
viewHolder.linkText.setText(AppUtils.createdHTMLEncodedString(item.Name));
break;
}
}
以及我在网络请求后调用它的方式如下:
mAdapter.notifyItemChanged(mAdapter.getItemIndex(item),R.id.item_current_price);
的问候, susheel