我有一个BorderLayout contentPane。在CENTER中有一个全部为SwipeableContainer的元素列表,在SOUTH中,还有另一个SwipeableContainer。 SOUTH容器当然位于CENTER列表的“顶部”,但是即使如此,当我滑动SOUTH Swipeable时,也将滑动基础(半隐藏)的Swipeable。因此,似乎拖动事件会传播到以下列表,即使不应这样做。
下面的示例对此进行了说明:运行代码并将“ SOUTH CONTAINER”拖到左侧,其下方的“ ListElement”容器也将向左滑动。
为确保看到问题,请在SOUTH CONTAINER的 top 处滑动(因此指针也位于最低可见ListElement上方),否则可能是被完全隐藏的ListElement 。
我猜这是一个错误(我认为拖动不应该影响在视觉上被拖动的元素下方部分“隐藏”的元素),但是如果不是这样,我很乐意输入有关如何避免它的信息,因为在视觉上非常令人不安。
//TEST: SWIPEABLE CONTAINER ALSO SWIPES UNDERLYING CONTAINER AS WELL
Form hi = new Form("Welcome", new BorderLayout());
Container list = new Container(BoxLayout.y());
for (int i = 0; i < 20; i++) {
SwipeableContainer swip = new SwipeableContainer(null, new Label("SWIPE"), new SpanLabel("ListElement " + i + " + a lot of fill text to make the element span over several lines so the dragging of the underlying Swipeable is normally noticeable"));
list.add(swip);
}
list.setScrollableY(true);
Container cont = hi.getContentPane();
cont.add(BorderLayout.CENTER, list);
SwipeableContainer swip = new SwipeableContainer(null, new Label("SOUTHSWIPE"), new Label("SOUTH CONTAINER"));
cont.add(BorderLayout.SOUTH, swip);
hi.show();
答案 0 :(得分:0)
这是一个错误,但是在查看代码时,我很难解决该问题,因为代码没有预见到这种布局。我们可能需要创建一个特殊情况来处理这种类型的布局。我建议使用测试案例代码在问题跟踪器中提交问题。