我有一个带有DDVerticalLayout子组件的固定位置CssLayout。我正在根据用户交互动态填充此垂直布局以创建列表视图。当列表变得大于显示区域时,我遇到了问题。它滚动正确,但拖动不会自动滚动。这会强制用户拖动,滚动,拖动,滚动,拖动......
例如,如果我在列表底部选择了一个项目,并且视图一次只显示6个项目,那么我一次不能将它拖动超过5个空格。视图不会根据鼠标悬停自动滚动。
带有子DDVerticalLayout CSS的父CssLayout:
.list {
z-index: 9999;
position: fixed;
right: 1%;
top: 20%;
max-width: 25%;
max-height: 70%;
min-height: 150px;
.v-verticallayout {
background-color: #EEEEEE;
overflow-y: scroll;
overflow-x: hidden;
display: block;
margin-left: 6px;
margin-right: 6px;
max-height: 350px;
min-height: 100px;
border-radius: 4px;
border: 1px solid #d5d5d5;
}
}
CssLayout类中的DDVerticalLayout设置:
private final DDVerticalLayout layout = new DDVerticalLayout();
//...
layout.setDragMode(LayoutDragMode.CLONE);
layout.setSizeUndefined();
layout.setDropHandler(new DefaultVerticalLayoutDropHandler()
@Override
protected void handleComponentReordering(DragAndDropEvent event) {
super.handleComponentReordering(event);
//custom code omitted
}
});
我正在使用drag and drop add-on v1.3.2 for Vaadin v7.7.6。
答案 0 :(得分:2)
它是一个旧帖子,但可能对其他人遇到此问题很有用。 您需要在Panel中包装VerticalLayout才能使用DNDScroll插件。像这样的东西 -
Panel panel = new Panel();
panel.setContent(content);
panel.setHeight(200, Unit.PIXELS); //optional - could be setSizeFull();
PanelAutoScrollExtension extension = new PanelAutoScrollExtension();
extension.extend(panel);