RecyclerView 踩坑
2024-08-24 00:04:36
一、RecyclerView设置拖动后怎么监听拖动的开始和结束
ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.Callback() {
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
//首先回调的方法 返回int表示是否监听该方向
int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;//拖拽
// int swipeFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;//侧滑删除
return makeMovementFlags(dragFlags, -1);
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
//滑动事件
Collections.swap(mList, viewHolder.getAdapterPosition(), target.getAdapterPosition());
mAdapter.notifyItemMoved(viewHolder.getAdapterPosition(), target.getAdapterPosition());
return true;
} @Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { if (viewHolder == null) {
// onMoveEnd(); //拖动结束
ToastUtil.showShort(mContext,"拖动结束");
mAdapter.notifyDataSetChanged();
} else {
// onMoveStart(); //拖动开始
}
super.onSelectedChanged(viewHolder, actionState);
} @Override
public void onSwiped(final RecyclerView.ViewHolder viewHolder, int direction) {
//侧滑事件
// onItemDelete(viewHolder.itemView, viewHolder.getAdapterPosition());
// mCAdapter.notifyItemRemoved(viewHolder.getAdapterPosition());
}
@Override
public boolean isLongPressDragEnabled() {
//是否可拖拽
return true;
}
@Override
public boolean isItemViewSwipeEnabled() {
//是否可以删除
return false;
}
});
helper.attachToRecyclerView(mRvEdtSort); //设置给RecyleView
重写 onSelectedChanged 方法,并且判断是否拖动的开始和结束。
二、RecyclerView加载更多用notifyDataSetChanged()刷新图片闪烁
最新文章
- Ancient Printer[HDU3460]
- iOS 开发之路(WKWebView内嵌HTML5之图片上传) 五
- 浏览器对象模型BOM小结
- java中,去除空白的方法
- paip..禁用mmseg 的默认词库. . 仅仅使用自定义词库from数据库.
- Oracle中的单行函数
- php字符串函数和数组函数
- NYOJ-253 凸包
- 疯狂的表单-html5新增表单元素和属性
- [React] Extracting Private React Components
- 未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件。
- HDU 3265 Posters ——(线段树+扫描线)
- php+jquery+ajax+json简单小例子
- BZOJ 2006: [NOI2010]超级钢琴 [ST表+堆 | 主席树]
- Panel 中加载窗体
- linux 两个查找工具 locate,find
- 一些Android手机的平台信息
- autoMapper的介绍
- mysql 拒绝访问的解决办法
- 记录:CSS选择器学习
热门文章
- [BZOJ1194][HNOI2006][强连通分量Tarjan+dfs]潘多拉的盒子
- ios开发 Socket通信
- 认识多渲染目标(Multiple Render Targets)技术【转】
- spring in action 4 (学习笔记1)
- idea 去掉never used 提示
- NYOJ82 迷宫寻宝(一)【BFS】
- vscode - 选中多行操作
- Android Asynchronous Http Client 中文教程
- python——定时闹钟讲解
- git merge 和 git rebase 小结(转)