自定义组件——ModuleView

简介:

  ModuleView是一个模快化的View。可以快速搭建一个常用的模块页面,显示不同模块的数据内容。它的难点在于解决ScrollView与RecyclerView的会出现的各种冲突。最容易遇到的就是RecyclerView不显示。
  ModuleView拥有自己得ModuleViewAdapter,ModuleViewBean,ModuleViewHolder比较容易理解,因为内部嵌入了RecyclerView。

效果图:

《自定义组件——ModuleView》 ModuleView

使用:

  1. 构建ModuleViewBean的集合。

    《自定义组件——ModuleView》

  2. 用ModuleView的实体调用方法,添加标题,显示右侧拓展按钮,显示列表内容。

    《自定义组件——ModuleView》

解析:

  1. setTitle(title,titleColor)该方法用于显示标题,以及改变标题的颜色,默认的标题颜色是紫色。不改变标题颜色传0即可。
  2. showRightImg(isShow,listen,imgResource)该方法用于控制是否显示右侧拓展按钮,第一个参数是boolean值,传true则显示。第二个参数是点击事件OnclickListener,多用于跳转。第三个参数属于重载参数,可不传,效果是自己定义右侧拓展按钮的图标。
  3. showRecyclerView(context,list,itemListener):该方法用于显示列表内容。第二个参数是ModuleViewBeand的集合,第三个参数是列表Item的点击事件。该方法会通过list的LayoutNum参数判断显示的布局。0=LinnerLayout布局;1=GridLayout布局。
    4.关于ModuleViewAdapter。默认了两个常量,LINEARLAYOUT和GRIDLAYOUT,用于控制显示线性布局或者网格布局。可以在这里拓展更多的布局,通过ViewType接收返回每一个Item的LayoutNum,在OnCreateViewHolder中判断返回对应的Holder。
  4. 如何解决RecycerView嵌套ScrollView不显示的问题。首先可以直接通过将ScrollView 的框高设置为match-parent,然后增加fillViewport=”true”即可将RecyclerView显示出来。不过会遇到一个问题,当嵌套多个ModuleView即套入多个RecyclerView,只会显示第一个。这里找到的解决方法是,选用LayoutManager的时候,使用自定义的FullLayoutManager,用于解决与ScrollView的冲突。
  5. 如果出现滑动冲突,关掉RecyclerView的滑动即可。

源码:

组件ModuleView源码

    原文作者:饮水思源为名
    原文地址: https://www.jianshu.com/p/61575afcd8c1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞