我已经开始为使用 Lucene 创建的索引构建一个小型搜索引擎。我使用 GWT 创建我喜欢的 GUI,但我遇到了问题。我正在尝试在 DockLayoutPanel 中心的 FlowPanel 中添加一些结果,以便我可以随意滚动页面。我的问题是(我发现)为了滚动工作(而不是让浏览器窗口剪切我的结果)是让每个 DockLayoutPanel 孩子没有位置:绝对。我的问题是我无法删除它(或者我不知道如何删除它)。当我从 chrome 检查器滚动工作中禁用它时,但是当我重新启用它时,它会切断 flowPanel。这是Java代码:
public static void loadCellTrees(HashMap<Integer,LinkedHashMap<String,String>> searchResults, List<RootCategories> list)
{
VerticalPanel westTrees = new VerticalPanel();
TreeViewModel treeModel = new CellTreeWidget(list);
CellTree tree = new CellTree(treeModel, null);
HTMLBuilder builder = new HTMLBuilder(searchResults);
tree.setStyleName("tree");
tree.setAnimationEnabled(true);
dock.clear();
westTrees.clear();
westTrees.getElement().setAttribute("align", "center");
westTrees.add(tree);
FlowPanel resultsPanel = new FlowPanel();
resultsPanel.setStyleName("resultsPanel");
for(int i=0; i<searchResults.size(); i++)
{
HTML box = builder.toHTML(i);
box.setStyleName("resultBox");
resultsPanel.add(box);
}
dock.addWest(westTrees, 20);
dock.addNorth(RootPanel.get("wrap"),20);
dock.add(resultsPanel);
}
在我的代码开头,我将扩展坞 (DockLayoutPanel) 添加到我的 RootLayoutPanel。
正如我在第一张图片中显示的那样...位置设置为绝对我可以使用滚动条并剪切结果,但是如果我禁用位置:绝对,如第二张图片所示
滚动条已启用,我可以完全访问我的所有结果。
滚动条设置如下:
RootLayoutPanel.get().getWidgetContainerElement(dock).getStyle().setOverflowY(Overflow.AUTO);
我想要做的是删除每个dockLayoutPanel的孩子的位置或将其设置为不会给我带来问题的其他东西。