我想创建一个开关列表(或处理水平指针移动的自定义控件)。 通过使用BoxLayout.y作为LayoutManager将这些组件放置在Container中,可以轻松完成此操作。 但是由于组件(水平移动的Switch或自定义组件)在列表中占据了很大空间,因此滚动列表非常困难。这是因为所有指针事件都是由嵌套组件处理的,没有一个事件到达周围的Container-一个带有BoxLayout.y的事件。
我试图做的自然的事情是调用各自的指针...-父容器的方法-原来是一个愚蠢的主意-它导致了StackOverflowError。
我真正想做的是在子组件和父组件中处理指针事件一定的阈值距离,以便确定用户是要水平滚动还是垂直滚动。
我注意到,将嵌套的BoxLayout.x-Containers嵌套在BoxLayout.y-Container中可以直接使用。但是我还无法掌握如何使用自定义控件来实现这一点-而且它也无法用于CN1-Switch-Components。
问题是:如何以合理的方式做到这一点?可能吗还是需要手势检测而不是Codename One的一部分?
答案 0 :(得分:0)
这是Codename One的默认行为。滚动将接管,并且基于您使用的X / Y轴存在一些偏差。所有这些都是内置的。我记得您在Codename One中更改了许多默认行为,我建议尝试一个干净的项目并查看其工作方式,例如像这样的东西:https://www.codenameone.com/blog/button-lists.html