如何使用带有负载参数的BindView方法仅更新RecyclerView中列表项的指定部分?

时间:2016-06-16 14:36:54

标签: android android-recyclerview

我正在查看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

0 个答案:

没有答案