RecycleView 删除指定item
生活随笔
收集整理的這篇文章主要介紹了
RecycleView 删除指定item
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以前在使用ListView的時候,ListView刪除item比較簡單,現在基本都不再使用ListView,都換成了RecycleView了,這里的刪除稍微麻煩一點,要執行多個方法,才能把item刪除掉,根據代碼講解一下
adapter.notifyItemRemoved(position); adapter.notifyItemRangeChanged(0, adapter.getItemCount());當點擊刪除的時候會執行這兩個方法,千萬不能把位置寫反了,下面貼部分關鍵代碼,后面會給下載地址
adapter里面,定義接口,讓刪除圖標顯示隱藏,
if (isShow) {viewHolder.ivDelete.setVisibility(View.VISIBLE); } else {viewHolder.ivDelete.setVisibility(View.GONE); }public class CarViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {@BindView(R.id.item_checkbox)ImageView ivDelete; @BindView(R.id.item_id)TextView tvTitle; OnItemClickListener onItemClickListener; public CarViewHolder(View view, OnItemClickListener onItemClickListener) {super(view); this.onItemClickListener = onItemClickListener; ButterKnife.bind(this, view); itemView.setOnClickListener(this); }@Override public void onClick(View v) {if (onItemClickListener != null) {if (isShow) {onItemClickListener.setDeleteListener(v, getLayoutPosition()); } else {onItemClickListener.setOnItemClickListener(v, getLayoutPosition()); }}} }public interface OnItemClickListener {void setOnItemClickListener(View view, int position); void setDeleteListener(View view, int position); }
在activity里面實現方法,
@Override public void setDeleteListener(View view, int position) {adapter.notifyItemRemoved(position); list.remove(position); adapter.notifyItemRangeChanged(0, adapter.getItemCount()); notifyDataSetChanged(); }點擊item,刪除刷新列表。
動態添加道理也一樣,如下:
list.add(1, "" + position); adapter.notifyItemInserted(mList.size()); adapter.notifyItemRangeChanged(list.size() - 1, list.size());話不多說,demo地址https://github.com/hedongBlog/RecycleViewDeleteItem
總結
以上是生活随笔為你收集整理的RecycleView 删除指定item的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery colorbox图片弹出效
- 下一篇: 内容播放colorbox