MGWT ScrollPanel不可滚动?

时间:2013-12-28 17:38:48

标签: java javascript html gwt mgwt

我使用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)正常工作?

1 个答案:

答案 0 :(得分:2)

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

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

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

希望它有所帮助。