Mobile 手机APP,采用 FireMonkey 的 ListBox 的话,大概会需要以下功能:
1. 响应用户手指点击某个条目,然后做某事;
2. 响应用户长按,做其它事;
针对需求1,这里,不能用 ListBox.OnClick 事件来响应单击。因为用户拖动 ListBox 的时候,也会触发这个事件。
这里应该采用 ListBox.OnItemClick 事件。
针对需求2,首先设置 ListBox 的 Touch 属性,将这个属性底下的 InteractiveGestures 里面的 LongTap 设置为 True,
然后给 ListBox.OnGesture 写代码。
这里需要注意,响应完长按以后,OnItemClick 事件仍然会被触发。触发顺序是先触发 OnGesture 然后再触发 OnItemClick,所以,需要自己增加一个标志,响应完 OnGesture 的 LongTap 后,设置这个标志,在 OnItemClick 里面检查这个标志,然后决定是否执行需要执行的事件代码。