本文为 【Android】一个低入侵的RecyclerView滑动菜单控件-ScrollMenuLayout的使用说明。

如何快速的为旧项目添加侧滑菜单:

这里我用我之前写的一个项目来做例子,给大家展示一下如何快速的为旧项目添加侧滑菜单的功能。

这是未加侧滑菜单时的样子:

现在我的想法是想给每一个文章都加上滑动菜单,然后菜单中可以将文章进行收藏。

1、导入ScrollMenuLayout到项目中

在project目录下的build.gradle中配置:

allprojects {    repositories {        ...        maven { url 'https://jitpack.io' }    }}

然后去到model(大部分为app)下的build.gradle中添加依赖:

 implementation 'com.github.d745282469:ScrollMenuLayout:1.1'

2、新建侧滑菜单布局xml

由于没有啥审美,所以就随便写写好了。需要注意的是,我们的按钮最终将放到的地方是Item中,所以我们的高度基本都是跟着填满父容器的,宽度则为跟随内容宽度。也正是由于此,我们在xml中预览的效果肯定不是那么好,但是不用担心,最终添加完成后的效果肯定是预期的。

3、在Adapter中,修改原有的布局

原有的是这样子的:

    ...    @NonNull    @Override    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.item_home_article, parent, false);        return new ViewHolder(view);    }    ...

 我们修改的话只需要将new ViewHolder(view)中的view修改为我们的ScrollMenuLayout即可,修改后:

    ...    @NonNull    @Override    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {        //注意将LayoutInflater的第二个参数设为Null        View view = LayoutInflater.from(context).inflate(R.layout.item_home_article, null, false);        ScrollMenuLayout scrollMenuLayout = new ScrollMenuLayout(context,null);        //设置item布局        scrollMenuLayout.setItemView(view);        //设置侧滑菜单布局        scrollMenuLayout.setRightMenuView(LayoutInflater.from(context).inflate(R.layout.item_menu_home_article,null));        //将ScrollMenuLayout替换原本的view        return new ViewHolder(scrollMenuLayout);    }    ...

这样,我们就为老项目的item加上了侧滑效果啦。

 可以看到,我们已经为item添加上了侧滑菜单了,但是我们原本的item间的间隔却消失了。这是由于我们的间隔是设置给item的,而现在Item却被我们的ScrollMenuLayout给包裹了,那么自然,这个间隔也就无法起作用了。其他相关的属性也是如此,只要是涉及到相邻Item之间的属性,我们都需要重新设置给ScrollMenuLayout,这也是不足之处吧。我们再修改一下:

    ...        @NonNull    @Override    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {        //注意将LayoutInflater的第二个参数设为Null        View view = LayoutInflater.from(context).inflate(R.layout.item_home_article, null, false);        ScrollMenuLayout scrollMenuLayout = new ScrollMenuLayout(context,null);        //设置item布局        scrollMenuLayout.setItemView(view);        //设置侧滑菜单布局        scrollMenuLayout.setRightMenuView(LayoutInflater.from(context).inflate(R.layout.item_menu_home_article,null));        //设置marginBottom,代码中的是px,所以我们需要将dp转换为px        int bottom = UnitUtil.dip2px(context,15);//原本的为15dp,这里转换成px        FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);        layoutParams.setMargins(0,0,0,bottom);        scrollMenuLayout.setLayoutParams(layoutParams);        //将ScrollMenuLayout替换原本的view        return new ViewHolder(scrollMenuLayout);    }    ...

到此,我们就为老项目加上了侧滑菜单效果啦。

其实总共的步骤就:1、新建侧滑菜单布局文件 2、将原有的Item布局添加到ScrollMenuLayout中,并用ScrollMenuLayout去替换之前的Item 3、将原来设置给Item布局的一些属性迁移给ScrollMenuLayout,比如一些margin啊之类的。

 ScrollMenuLayout的GitHub链接

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  3. 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平
  4. Android文字自动轮播实现
  5. 【Android(安卓)源码解析】浅谈DecorView与ViewRootImpl
  6. Android成长之路之layout加载过程
  7. 【最新】汇总Android(安卓)Studio 2.2 给我们带来的十大新功能
  8. Android中库项目、jar包等的使用方法
  9. 直接拿来用!最火的Android开源项目(完结篇)

随机推荐

  1. 从正则表达式中浏览和提取字符类
  2. Python自学,Day3-Python基础
  3. 报错 src/png_io.c:3:17: error: png.h:
  4. Python语法教程总结规范
  5. python中字典的操作
  6. Python:运算类内建函数列举
  7. Python学习总结-(15)---返回函数和闭包初步
  8. 卸载gcc,ubuntu系统崩溃解决
  9. Python语言及其应用 PDF
  10. Django:测试成功加载静态文件