红点系统
红点是树形结构,数的每个节点是一个红点,每个红点有个key(不可重复)。节点树由两部分组成:
1.策划配置的红点(子红点、红点UI路径、功能开关等),比如主界面功能按钮 - 赛季模块切换tab - 赛季模块对应UI下的某个按钮。
2.运行后动态生成的节点(挂到上面配置的红点下面),比如赛季模块下有个列表、每个列表的item要显示红点,那就生成一个红点节点挂在赛季模块切换tab(配置的)下面。
每个红点节点有个count参数,>0的情况是要显示红点的,这个参数的值由当前节点的count + 其子节点的count计算出来,也就是说,子节点count发生改变也会让其父节点的count发生改变。
提供一个实例化红点结点UI和关闭红点节点UI的方法(需要传入对应的Key),在需要显示红点的地方调用这两个方法管理红点。
在需要刷新红点数据的地方去调用刷新红点树的方法(可以用key刷新指定红点,也可以整个树都刷新),本质上是刷新每个节点的count,如果count <= 0,就自动关闭红点显示