0

我有以下使用 mgwt 1.2-Snapshot 的 ui binder 结构。

<mgwt:LayoutPanel>  

    <g:FlowPanel />

    <mgwt:LayoutPanel>

        <b:MyTouchPanel>
            <g:Label ></g:Label>
            <g:Label></g:Label>
        </b:MyTouchPanel>

    </mgwt:LayoutPanel>

    <b:MyTouchPanel >

        <mgwt:LayoutPanel ui:field="contentPanel">

            <b:MyTouchPanel>
            </b:MyTouchPanel>

            <mgwt:ScrollPanel ui:Field="panel2">    
                <b:MyTouchPanel ></b:MyTouchPanel >
            </mgwt:ScrollPanel>

        </mgwt:LayoutPanel>

    </b:MyTouchPanel>


</mgwt:LayoutPanel>

前一个工作正常。每次内容更改时,我都会刷新标记为红色的 schrollPanel。我的问题是以下不起作用:

<mgwt:LayoutPanel>  

    <g:FlowPanel />

    <mgwt:LayoutPanel>

        <b:MyTouchPanel>
            <g:Label ></g:Label>
            <g:Label></g:Label>
        </b:MyTouchPanel>

    </mgwt:LayoutPanel>

    <b:MyTouchPanel >

        <mgwt:LayoutPanel ui:field="contentPanel">

            <b:MyTouchPanel>
            </b:MyTouchPanel>

            <mgwt:LayoutPanel>  
                <b:MyTouchPanel ui:Field="panel1"></b:MyTouchPanel>
                <mgwt:ScrollPanel ui:Field="panel2">    
                    <b:MyTouchPanel ></b:MyTouchPanel >
                    </mgwt:ScrollPanel>
            </mgwt:LayoutPanel> 

        </mgwt:LayoutPanel>

    </b:MyTouchPanel>


</mgwt:LayoutPanel>

当我将 scrollPanel 包装在 LayoutPanel 中时,它不再可滚动。我必须这样做,因为红色标记的部分来自在整体布局中呈现的新页面。由于 ui binder 不允许多个根元素,因此我必须将 panel1 和 pane2(ScrollPanel)包装在另一个 Panel 中,我为其选择 LayoutPanel。

有没有办法让 ScrollPanel (panel2) 在我的情况下正常工作?

4

1 回答 1

2

您是否尝试过使用像 a 这样的普通容器FlowPanel,并将盒子放在绝对位置(您玩过css吗??也许是您问题的最佳解决方案)。

然后,你在FlowPanel你的ScrollPanel里面,你可以在里面介绍任何你想要的东西。

如果panel1包含大量信息,您可以GQuery手动执行,这样 GWT 将不知道ScrollPanel有多个孩子(但这是一个棘手的讨厌的解决方案:D)。

希望能帮助到你。

于 2013-12-29T18:06:08.210 回答