Reputation: 1414
How to add divider after the last item in the list for RecyclerView?
Upvotes: 0
Views: 1716
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