我的要求是通过扩展verticalfeildmanager创建一个customlistfieldmanager,我无法弄清楚如何做到这一点?
我无法理解为什么我的经理要我使用这种方法。
欢迎任何形式的帮助!
答案 0 :(得分:2)
他可能会因为正常ListField的最大限制因素而要求你这样做:你被困在统一的高度。
您需要做的是拥有一个滚动VerticalFieldManager的父容器。其中的内容是自定义管理器,它们可以处理与ListField中的行相同的功能。它需要接受焦点并在点击时触发事件。您还需要跟踪它的项目编号,以便在单击它时,它知道如何通知任何听众关于选择了哪一个。此外,父VFM需要能够跟踪当前选择的“行” - 在这种情况下,哪一个具有焦点。
修改评论
如果您在每个中添加NullField
,它可以接受焦点但实际上不会显示为任何内容。要确定“行”(Manager)是否具有焦点,可以在该Manager上使用getFieldWithFocus()
,而不返回null
的是所选行。你可能还需要做一些自定义绘画来绘制选择亮点
答案 1 :(得分:1)
在从VerticalFieldManager添加和删除元素时,您必须从CustomListFieldManager动态添加和删除自定义元素。
您的经理问,因为他希望您学习如何处理自定义对象以了解如何使用经理。