【发布时间】:2015-05-02 19:59:30
【问题描述】:
我已经在这里问过这样的问题,但没有得到可以解决的答复。解决问题对我来说非常重要。因此,我尝试使用 ExtGWT 2.3.0 / GWT 2.5.1 开发应用程序,但遇到了小部件(GWT 和 GXT)在浏览器中不可见的问题。一个多星期以来,我一直在尝试解决这个问题,但不幸的是我失败了。我已经尝试过的东西:
- 使用不同的 GWT/GXT 库(使用 ExtGXT 3.x 不能解决问题);
- 使用 Maven web-app / gxt3+ 原型创建项目;
- 在 Tomacat 上部署项目 / GWT 下的午餐;
- 在 GWT 模块中使用不同的样式(如
<inherits name='com.google.gwt.user.theme.standard.Standard'/>); - 重写 .css 文件;
- 通过 Maven/GWT 编译器编译项目;
- 清理所有相关临时目录(如 Windows 和 Intellij IDEA)中的缓存文件;
- 制作 Maven 的
clean install; - 使用不同版本的不同浏览器(IE 8 和 11、Chrome、FF 24 和 36);
- 尝试在有/没有 GWT 开发者插件的浏览器中使用午餐应用程序;
- 浏览互联网寻找解决方案(尤其是 stackoverflow);
也许我遗漏了 smth,但操作列表非常大。 顺便说一句,我记录了操作并且没有抛出任何错误或异常。如果我在 .css 中声明小部件的边框设置,它们的边框变得可见,证明小部件在页面上。所以,如果有人遇到过这样的问题或者只是可以提出一些建议,请告诉我。坦率地说,这对我来说非常重要。请查看项目文件夹结构/设置的屏幕截图。提前谢谢你。
EntryPoint - 类
public class ProjectEntryPoint implements EntryPoint {
@Override
public void onModuleLoad() {
Viewport viewport = new Viewport();
final BorderLayout borderLayout = new BorderLayout();
BorderLayoutData northData = new BorderLayoutData(Style.LayoutRegion.NORTH, 20);
northData.setSplit(false);
northData.setCollapsible(false);
BorderLayoutData centerData = new BorderLayoutData(Style.LayoutRegion.CENTER);
centerData.setCollapsible(false);
BorderLayoutData westData = new BorderLayoutData(Style.LayoutRegion.WEST, 200, 150, 300);
westData.setCollapsible(true);
westData.setSplit(true);
ContentPanel mainPanel = new ContentPanel();
mainPanel.setStyleName("mainPanel");
ContentPanel navPanel = new ContentPanel();
mainPanel.setStyleName("navPanel");
HTML headerHTML = new HTML();
headerHTML.setHTML("<h1>RSS Reader</h1>");
viewport.add(mainPanel, centerData);
viewport.add(navPanel, westData);
viewport.add(headerHTML, northData);
viewport.setLayout(borderLayout);
viewport.layout();
RootPanel.get().add(viewport);
}
}
模块
<module rename-to='Project'>
<inherits name='com.google.gwt.user.User' />
<inherits name='com.extjs.gxt.ui.GXT' />
<inherits name='com.google.gwt.user.theme.standard.Standard'/>
<entry-point class='GXT3App.client.ProjectEntryPoint' />
<source path='client' />
<source path='shared' />
<add-linker name="xsiframe" />
</module>
.html
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="gxt-all.css">
<title>Project</title>
<script type="text/javascript" language="javascript" src="Project/Project.nocache.js"></script>
</head>
<body>
<!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
</body>
</html>
.css
.mainPanel {
border: 1px solid black;
}
.navPanel {
border: 1px solid black;
}
【问题讨论】:
-
不要两次发布同一个问题来“引起注意”。编辑旧的并添加赏金以吸引更多关注。以后不要向网站发送重复问题的垃圾邮件。
-
我删除了旧问题并通过描述问题和我为解决它所做的事情来更新一个问题。这不是为了吸引注意力,而是将有关该问题的所有信息集中在一个地方。我认为它更清晰简洁。
-
你试过IE以外的其他浏览器吗?
-
谢谢,艾米。这个问题确实很好,我只是不想放弃其他一些问题。现在对于问题本身 - 显示了边框,所以有些东西有效。对于此类用例,我一直使用
BorderLayoutContainer,如果示例这样做:sencha.com/examples/#ExamplePlace:borderlayout。你可以试试它而不是BorderLayout吗? -
谢谢,但 BorderLayoutContainer 仅在 GXT 3.x 中可用。我使用 GXT 2.3。我尝试在 3.x 上更改 lib,但没有成功。
标签: gwt intellij-idea gxt