Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GWT中获取嵌套div_Gwt - Fatal编程技术网

如何在GWT中获取嵌套div

如何在GWT中获取嵌套div,gwt,Gwt,我希望在GWT中获得一个嵌套的div,并能够在其中放置一个小部件。大概是这样的: <div id="container"> <div id="content_left"> </div> ...other divs </div> …其他部门 我希望能够得到内容_左,并把一个小部件在那里。到目前为止,RootPanel得到的都是标记中的div。我还尝试使用DOM.getElementById(…),但我不知道如何放置小部件

我希望在GWT中获得一个嵌套的div,并能够在其中放置一个小部件。大概是这样的:

<div id="container">
    <div id="content_left">
    </div>
    ...other divs
</div>

…其他部门
我希望能够得到内容_左,并把一个小部件在那里。到目前为止,RootPanel得到的都是标记中的div。我还尝试使用DOM.getElementById(…),但我不知道如何放置小部件,因为add方法指定输入参数应为child类型

现在我对CSS和定位不太了解,我没有做上面的样式设计。这是我从我的平面设计师那里得到的东西。我想这是他安排事情的方式。
我已经在考虑在布局时不必使用外部div,比如上面id=container的div,这样我就不会有这个问题,但我想听听这是不是个好主意

GWT为这类事情提供了容器小部件:它们为您生成div,您可以根据自己的规则将它们嵌套到任何深度。您实际上不需要为任何事情使用显式div

你说

现在我对CSS和定位不太了解,我没有做上面的样式设计


这正是GWT的目的:你不需要这样做。您将GUI放在代码中,让GWT担心如何将其转换为CSS。提示:这比我们大多数人做得都好。许多已知的浏览器怪癖都有解决办法,可以使其尽可能跨平台。

您提供的HTML代码片段的具体示例如下。FlowPanel是支持向其添加任意数量内容的div。如果您知道给定的div中只有一个小部件,那么SimplePanel可能是更好的选择

不管怎样,通常您要做的是获取要生成的HTML并构建GWT代码以输出特定的DOM结构。下面是一篇关于我如何处理更简单的小部件的文章


如果您的设计师正在生成高质量的布局代码,您应该使用它,但前提是您知道所有风险和兼容性问题,并且不关心或有能力测试您的布局

假设所有这些,我发现这种方法非常有效

只需从HTMLPanel构建小部件并使用div,当您需要编程控制时,只需切换到第一类对象来表示您的布局


内容

请注意,您仍然可以将模糊样式与香草div/span等一起使用,或者混合搭配

您可以将html更改(或告诉设计师更改)为

<div id="container">
    <div id="content_left">
        <span id="qq"/>
    </div>
    ...other divs
</div>
欢迎来到UIBinder

支持自定义HTML+小部件


“让用户界面设计师更容易与他们合作,他们对XML、HTML和CSS比Java源代码更熟悉”

但是网页的现有设计在很大程度上依赖于他的嵌套div。我应该告诉他重新编码网页,将静态部分与我打算使用GWT的部分分开吗?GWT有一个最重要的内容根:没有在不同的地方进行GWT的概念。也许其他人有不同的观点,但我不认为有办法让你当前的设计与GWT很好地配合。我的意思是设计,图形。它们到处都是我想要放置GWT小部件的地方。在本例中,它们也位于id为的div容器中。现在你是说我也应该在GWT中布局我的图形,比如使用HTML小部件,或者通过CSS使用setStylePrimaryName我认为我们没有很好地沟通,也就是说,可能会错过对方的观点,我担心我可能会给你不好的建议。我很抱歉,但我认为最好是我退出这个问题。GWT生成糟糕的表格布局,如果你想要一个好看的应用程序,它不会削减它。但如果兼容性和覆盖范围是关键,而不是外观,那么就值得考虑。只是说有很多次它不起作用是的,我以前想过,但我有一个问题,GWT模块加载比整个网页/其静态部分稍晚一点,特别是我正在做一个RPC调用。谢谢伙计!你的回答给我省去了很多麻烦!
    <g:HTMLPanel >

            <div class="normal style classes {obfuscated.style.class}">
                    <g:FlowPanel ui:field="programmaticPanel" stylePrimaryName="style">
                            <g:HTMLPanel>
                                    <p>CONTENT</p>
                            </g:HTMLPanel>
                    </g:FlowPanel>
            </div>

    </g:HTMLPanel >
<div id="container">
    <div id="content_left">
        <span id="qq"/>
    </div>
    ...other divs
</div>
FlowPanel panel = new FlowPanel();
RootPanel.get("qq").add(panel);
panel.add(w1);
panel.add(w2);
...