赞 | 9 |
VIP | 0 |
好人卡 | 0 |
积分 | 41 |
经验 | 0 |
最后登录 | 2024-11-10 |
在线时间 | 500 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 4139
- 在线时间
- 500 小时
- 注册时间
- 2011-3-26
- 帖子
- 110
|
本帖最后由 rfvtgbzxc 于 2024-2-1 20:49 编辑
mz原生选择窗不支持选中两个物品。改代码提供两种策略,主要是组件层次上的差异:
1.由管理这个selectable的scene维护这样的属性:selectedItem1。第一次selectable确认,由scene做一下逻辑判断,给selectedItem1赋值,两个都有值了可以继续接下来的逻辑。
selectable要继承原生的,然后处理一下渲染,将已经选择的物品的选中效果渲染出来。
2.由selectable自己维护selected1Index,第一次选中不向scene发送事件,设置selectedIndex,第二次连着本次选择的index和selectedIndex一起发送一个事件提醒scene读取状态。
selectable依然要继承原生并且处理渲染,而且还要做确认相关的处理。
个人建议选第一种,第2种要修改更多selectable的源码,改动比较复杂。不过第二种做出来以后可以变成一个比较通用的“多选组件”。可以先从第一种方法入手,熟练代码结构后再根据需要做第二种方式。 |
|