分享一个红点的实现方式

demo: RedDot.zip (1022.2 KB)

12赞

具体实现是通过静态配置, 或者动态生成配置创建红点树,并且设置所有叶子结点的计算函数,

1、返回值有两个,一个是show, 一个是count,

2、所有非叶子结点等于子结点计数之和

3、红点刷新通过调用 reCalculate 方法实现, 内部封装好事件了, 只有RedDotComponent这个组件能接收到

战略mark!

战略mark

你的红点实现方式很不错,现在它是我的了。。。

你的红点实现方式很不错,现在它是我的了。。。

感觉和我们公司的红点思路差不多…

你的红点实现方式很不错,现在它是我的了。。

战略mark

你的红点实现方式很不错,现在它是我的了。。。

你的红点实现方式很不错,现在它是我的了。。。

你的红点实现方式很不错,现在它是我的了。。。

你的红点实现方式很不错,现在它是我的了。。。

你的红点实现方式很不错,现在它是我的了。。。

你的红点实现方式很不错,现在它是我的了。。。

可以~~~

你的红点实现方式很不错,现在它是我的了。。。

你的红点实现方式很不错,现在它是我的了。。。+1

你的红点实现方式很不错,现在它是我的了。。。+1

再分享一个进阶使用方法:

比如有一个红点计算方法很复杂或者不会经常更新,那么可以做一个MemoryDot(记忆红点),有两种方式实现

a、把MemoryDot当作普通红点,结构不变,区别在没有ui层

b、把MemoryDot的parent设置成null(也就是nodeRoot),在实际红点的计算方法中, 用MemoryDot.getResult()获取结果,

这时候如果MemoryDot结果发生改变,demo中的reCalculate方法不够用, 需要改成多个参数的形式, 如图: