自定义组件——ModuleView

作者: 饮水思源为名 | 来源:发表于2018-07-26 16:07 被阅读13次

    简介:

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

    效果图:

    ModuleView

    使用:

    1. 构建ModuleViewBean的集合。


    2. 用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下载地址
    附件无法下载,请复制打开连接,在浏览器重新执行即可!!

    相关文章

      网友评论

      • zbiext:还是不能下载~
        饮水思源为名:现在可以了,你再试试,百度云盘会吧链接清除掉,后期我放在Github上去。感谢反馈

      本文标题:自定义组件——ModuleView

      本文链接:https://www.haomeiwen.com/subject/tapbmftx.html