SwipeMenuRecyclerView 的用法

本文介绍了如何使用SwipeMenuRecyclerView实现下拉刷新、上拉加载、Item左右滑动等功能。重点讲解了上拉加载的loadMoreFinish()方法及其在不同情况下的应用,以及自定义下拉加载页脚样式。同时,提到了Item点击事件的设置细节和左滑优化的解决过程。
摘要由CSDN通过智能技术生成

最近项目里需要一个几近万能的recyclerview,既可以下拉刷新上拉加载,同时带特效,又可以每个item左右滑动,进行删除或者编辑。于是就在网上搜了一个牛人写的工具。打算用到项目中。他给的关键类就是SwipeMenuRecyclerView。 但是同时也有好多接口。时间短,不可能一下子全搞明白。现在最最最关键的是搞清楚要怎么用!先摘一些下周要用到的功能!
1 上拉刷新下拉加载的使用
上拉刷新下拉加载的动效
上拉刷新下拉加载的触发回调
2 左滑右滑的界面设置方式
左滑右滑的动作触发回调代码
3 item上下位置改变的功能
4 加headerView 是怎么加的?
先考虑这几点吧。我看作者描述,似乎这个自定义的view是可实现这几个功能的。具体请详查网址:RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载.

那么我们开始亲测一下,探究其功能吧。先从最简单的开始。先用他表现一个最简单的样式:
首先我写了一个最最最简单的功能,就是展示:
在这里插入图片描述
因为刚刚学习了ConstrainsLayout, 所以我无论是activity最外面的布局还是item布局都采用了这个 constrainsLayout, 如果大家发现自己无论如何都不能使item宽度填充整个listview 的话,请在adapter中初始化view 的时候使用 view = mLayoutInflater.inflate(R.layout.XXXX, parent, false);第三个参数是false!

上拉加载下拉刷新,以及涉及的动态图片设置。

上拉加载:

        //设置上拉加载功能
        //采用自带的关于加载更多的view。
        recyclerView.useDefaultLoadMore();
        //设置这一行,等滑动到底部的时候,才会出现加载更多的界面。
        recyclerView.loadMoreFinish(false, true);
        //设置加载更多时的回调。
        recyclerView.setLoadMoreListener(new SwipeMenuRecyclerView.LoadMoreListener() {
   
            @Override
            public void onLoadMore() {
   
                //添加数据
                adapter.addDatalist(makeData(0));
                //通知adapter
                adapter.notifyDataSetChanged()}
        });

用默认的页脚样式,下拉加载更更多实现。
在上面的代码中,有一个很重要的方法决定到底要不要继续加载,那就是:loadMoreFinish()这个方法。这个方法很重要,决定了默认的最下面的加载更多View 到底怎么展示
public final void loadMoreFinish(boolean dataEmpty, boolean hasMore).
如果dataEmpty = true 的话,list最下方的页脚loading直接消失。因为没有数据了没必要出现。
同时dataEmpty 与 hasMore 综合决定了到底调不调用监听器中的onLoadMore()方法。 所以写的时候应当注意,这几个条件。
用自定义的页脚样式,下拉加载更多实现。
上面的代码用的是默认的样式表示下拉加载更多。那如果我们需要自己自定义呢?gitHub上给的例子实则有问题。只好自

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SwipeMenuRecyclerView是一个实现了侧滑菜单的RecyclerView控件,可以用于实现类似于QQ、微信等应用中的侧滑菜单效果。 具体使用步骤如下: 1. 在build.gradle文件中添加SwipeMenuRecyclerView的依赖: ```gradle dependencies { implementation 'com.yanzhenjie:recyclerview-swipe:1.2.0' } ``` 2. 在布局文件中添加SwipeMenuRecyclerView控件: ```xml <com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. 在代码中获取SwipeMenuRecyclerView对象,并设置其布局管理器和适配器: ```java // 获取SwipeMenuRecyclerView对象 SwipeMenuRecyclerView recyclerView = findViewById(R.id.recycler_view); // 设置布局管理器 recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 设置适配器 recyclerView.setAdapter(adapter); ``` 4. 在适配器中实现侧滑菜单: ```java // 绑定菜单布局文件 @Override public SwipeMenuCreator onCreateMenuCreator() { return new SwipeMenuCreator() { @Override public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) { int width = getResources().getDimensionPixelSize(R.dimen.dp_70); int height = ViewGroup.LayoutParams.MATCH_PARENT; // 添加右侧菜单 SwipeMenuItem deleteItem = new SwipeMenuItem(MainActivity.this) .setBackground(R.drawable.selector_red) .setText("删除") .setTextColor(Color.WHITE) .setWidth(width) .setHeight(height); swipeRightMenu.addMenuItem(deleteItem); } }; } // 处理菜单项的点击事件 @Override public void onItemClick(SwipeMenuBridge menuBridge) { int position = menuBridge.getAdapterPosition(); // 菜单所在的位置 int menuId = menuBridge.getPosition(); // 菜单的ID if (menuId == 0) { // 删除菜单 // 处理删除逻辑 } menuBridge.closeMenu(); // 关闭菜单 } ``` 以上就是使用SwipeMenuRecyclerView的基本步骤,具体可以根据自己的需求进行修改和拓展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

娅娅梨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值