DeniSHow
DeniSHow

Reputation: 1414

RecyclerView.ItemDecoration divider after the last item

How to add divider after the last item in the list for RecyclerView?

Upvotes: 0

Views: 1716

Answers (1)

Jonathan Aste
Jonathan Aste

Reputation: 1774

You can add a element (maybe an empty instance of your model) to your itemList inside your RecyclerView adapter. Then override the getItemViewType inside your adapter.

@Override
public int getItemViewType(int position) {
    int viewType;
    Model item = getItem(position);
    if (item.getId == -1) {
        viewType = R.layout.item_divider;
    } else  {
        viewType = R.layout.item_model;
    }
    return viewType;
}

Then on your onCreateViewHolder method.

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

Finally on your ViewHolder inflate the views depending on the viewType:

MyViewHolder(View itemView, int viewType) {
        super(itemView);
        if (viewType == R.layout.item_model) {
            //inflate model view
        } else if (viewType == R.layout.item_divider) {
           //inflate divider view
        }
    }

And the same when you bind the data:

void bind(Model model) {
        if (model.getId != -1) {
            //bind your model data
        } else {
           //bind if you need divider data.
        }
    }

Upvotes: 2

Related Questions