我已经开始为我用Lucene创建的索引构建一个小型搜索引擎。我使用GWT来创建我喜欢的GUI,但是我陷入了一个问题。我试图在FlowPanel中添加一些结果,它位于DockLayoutPanel的中心,这样我就可以随意滚动页面。我的问题是(正如我所发现的),为了使滚动工作(而不是让浏览器窗口剪切我的结果)使每个DockLayoutPanel子程序都没有位置:绝对。我的问题是我不能移除它(或者我不知道怎么做)。当我从铬检查器中禁用它时,滚动会工作,但当我重新启用它时,它会减少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的子程序的位置,或者将其设置为其他不会给我带来问题的东西。
发布于 2016-05-21 11:48:04
我找到了解决办法。关于CSS样式,我只需编写
.cw-DockPanel > div {
position : initial !important;
}如果有人提出比使用!important更好的方法,我会很高兴听到的。
https://stackoverflow.com/questions/37352642
复制相似问题