类似于众人帮的做任务赚佣金网站网络建站平台
news/
2025/10/5 0:02:07/
文章来源:
类似于众人帮的做任务赚佣金网站,网络建站平台,产品包装设计100例,网站建设是管理费用的哪项费用前几天写了一片关于RecyclerView滑动删除Item#xff0c;RecyclerView长按拖拽Item的博客#xff0c;本来很简单一个使用#xff0c;阅读量还挺高的#xff0c;原博客传送门。今天介绍一个RecyclerView Item侧滑菜单#xff0c;RecyclerView滑动删除Item#xff0c;Recyc…前几天写了一片关于RecyclerView滑动删除ItemRecyclerView长按拖拽Item的博客本来很简单一个使用阅读量还挺高的原博客传送门。今天介绍一个RecyclerView Item侧滑菜单RecyclerView滑动删除ItemRecyclerView长按拖拽Item的开源项目效果看下图大家也可以下载演示apk具体操作体验下SwipeRecyclerView的强大。需要说明的是本库没有对RecyclerView做大的修改只是ItemView的封装。看起来是对RecyclerView的修改其实仅仅是为RecyclerView添加了使用的方法API而已。今天的博客将完美解决这些问题RecyclerView侧滑菜单(左右两侧都可以添加)(List、Grid两种形式)。RecyclerView长按拖拽Item(List、Grid两种形式)。RecyclerView侧滑删除item(List、Grid两种形式)。指定RecyclerView的某一个Item不能滑动删除或长按拖拽(List、Grid两种形式)。根据Item的ViewType来决定显示的菜单。用SwipeMenuLayout在任何地方都可以实现你自己的侧滑菜单。SwipeRecyclerView的源码托管在Githubhttps://github.com/yanzhenjie...欢迎Star。如果不能打开Github直接从CSDN上下载Demo。效果图如果网页加载速度慢可以下载demo的apk看效果。侧滑菜单RecyclerView Item侧滑菜单。左右两侧都可以添加侧滑菜单菜单Item包括图标、文字、点击背景颜色等。也可以根据Item的ViewType来决定某个Item的Menu的样子、类型等拖拽、侧滑菜单RecyclerView Item长按后拖拽Item移动位置。同时支持Item长按拖拽、Item侧滑显示菜单。包括各种布局管理器比如LinearLayoutManager、GridLayoutManager都完美支持拖拽、侧滑删除可以指定某个Item不能被拖拽指定某个Item不能被滑动删除引用方法Eclipse 请自行下载源码。AndroidStudio使用Gradle构建添加依赖(推荐)compile com.yanzhenjie:recyclerview-swipe:1.0.0本库引用的RecyclerView版本如下compile com.android.support:recyclerview-v7:23.4.0使用介绍这里列出关键实现具体请参考demo或者加我博客左侧的交流群或者关注我的公众微信一起来讨论。实现原理侧滑菜单使用自定义Layout实现继承自FragmeLayout。长按拖拽Item、滑动Item删除由ItemTouchHelper实现。启用SwipeReyclerView的长按Item拖拽功能和侧滑删除功能recyclerView.setLongPressDragEnabled(true);// 开启长按拖拽recyclerView.setItemViewSwipeEnabled(true);// 开启滑动删除。recyclerView.setOnItemMoveListener(onItemMoveListener);// 监听拖拽和侧滑删除更新UI。.../*** 当Item移动的时候监听。*/private OnItemMoveListener onItemMoveListener new OnItemMoveListener() {Overridepublic boolean onItemMove(int fromPosition, int toPosition) {// 当Item被拖拽的时候交换Item的位置。Collections.swap(mStrings, fromPosition, toPosition);mMenuAdapter.notifyItemMoved(fromPosition, toPosition);return true;}Overridepublic void onItemDismiss(int position) {// 当Item被滑动删除的时候删除Item。mStrings.remove(position);mMenuAdapter.notifyItemRemoved(position);Toast.show(mContext, 第 position 条被删除。);}};添加Item侧滑菜单侧滑菜单支持自动打开某个Item的菜单并可以指定是左边还是右边的// 打开第一个Item的左侧菜单。recyclerView.openLeftMenu(0);// 打开第一个Item的右侧菜单。recyclerView.openRightMenu(0);第一步引用自定义ViewSwipeMenuReyclerViewandroid:idid/recycler_viewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:layout_behaviorstring/appbar_scrolling_view_behavior /第二步设置菜单创建器、菜单点击监听SwipeMenuRecyclerView swipeMenuRecyclerView findViewById(R.id.recycler_view);// 设置菜单创建器。swipeMenuRecyclerView.setSwipeMenuCreator(swipeMenuCreator);// 设置菜单Item点击监听。swipeMenuRecyclerView.setSwipeMenuItemClickListener(menuItemClickListener);第三步菜单创建器创建菜单/*** 菜单创建器。在Item要创建菜单的时候调用。*/private SwipeMenuCreator swipeMenuCreator new SwipeMenuCreator() {Overridepublic void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {SwipeMenuItem addItem new SwipeMenuItem(mContext).setBackgroundDrawable(R.drawable.selector_green)// 点击的背景。.setImage(R.mipmap.ic_action_add) // 图标。.setWidth(size) // 宽度。.setHeight(size); // 高度。swipeLeftMenu.addMenuItem(addItem); // 添加一个按钮到左侧菜单。SwipeMenuItem deleteItem new SwipeMenuItem(mContext).setBackgroundDrawable(R.drawable.selector_red).setImage(R.mipmap.ic_action_delete) // 图标。.setText(删除) // 文字。.setTextColor(Color.WHITE) // 文字颜色。.setTextSize(16) // 文字大小。.setWidth(size).setHeight(size);swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。}};第四步继承SwipeMenuAdapter和正常的Adapter一样使用public class MenuAdapter extends SwipeMenuAdapter {Overridepublic int getItemCount() {return 0;}Overridepublic View onCreateContentView(ViewGroup parent, int viewType) {return null;}Overridepublic ViewHolder onCompatCreateViewHolder(View realContentView, int viewType) {return null;}Overridepublic void onBindViewHolder(MenuAdapter.DefaultViewHolder holder, int position) {}}就到这里更多的细节请参考Github上的demo和源码源码demo下载传送门。欢迎加入我的技术交流群Android 愚公移山③ 547839514欢迎关注我的公众号长期不断推送优选博文、优秀开源项目欢迎投稿
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927704.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!