【问题标题】:DockLayoutPanel issues with text wrappingDockLayoutPanel 文本换行问题
【发布时间】:2023-09-08 22:25:01
【问题描述】:

所以我正在使用停靠布局面板。在北部,我有一个标题和菜单栏,中心有一张桌子。我的问题是当标题变长并包裹文本时,它会将菜单栏向下推,您再也看不到它。这是因为您必须为除中心之外的所有面板设置固定尺寸。

我曾考虑将其全部移到中心面板,但问题是当我的表格变大并且出现滚动条时,即使在表格上滚动时,我也希望始终看到标题和菜单栏。所以我不能把所有东西都放在滚动面板中。

如何创建满足这些要求的布局: 1.总是看到标题和菜单栏 2. 可滚动表格 3. 当窗口调整大小并且标题中的文本换行时,它会正确调整整个窗口的大小。

现在是布局:

<g:DockLayoutPanel >
        <g:north size="80">
            <g:VerticalPanel width="100%">
                    <g:HorizontalPanel width="100%">
                        <g:HTML ui:field="title" styleName="{style.title}"></g:HTML>
                    </g:HorizontalPanel>
                    <g:HorizontalPanel styleName="{style.infoBar}" width="100%">
                        <g:MenuBar animationEnabled="true" styleName="{res.css.menuBar}" focusOnHoverEnabled="false" ui:field="menuBar"></g:MenuBar>
                    </g:HorizontalPanel>
                </g:VerticalPanel>
            </g:north>
            <g:center>
                <g:ScrollPanel>
                    <g:SimplePanel ui:field="content" styleName="{style.content}">Table or tree goes here
                    </g:SimplePanel>
                </g:ScrollPanel>
            </g:center>
            <g:south size="20">
                <g:VerticalPanel styleName="{style.footerPanel}">
                    <g:HTML ui:field="messageBar">Fotter text here</g:HTML>
                </g:VerticalPanel>
            </g:south>
        </g:DockLayoutPanel>

【问题讨论】:

    标签: gwt layout uibinder docklayoutpanel


    【解决方案1】:

    你试过使用两个 DockLayoutPanel 吗?

    第一个在中心区域有标题,在南部有另一个 DockLayoutPanel,菜单在北部区域,表格在中心?

    【讨论】:

    • 我没有尝试过,但除非我弄错了,因为您必须在南面板上设置固定大小,否则您无法在其中放置停靠布局面板,除非我为桌子设置了固定高度
    • 你是对的。我在考虑 GXT BorderLayoutPanel。您是否尝试将两个北部区域添加到 DockPanel。一个用于标题,另一个用于您的菜单。
    • 这仍然不能解决问题,因为你必须给北面板一个固定的大小,但是如果窗口太小并且文本换行,那么它会比设置的固定大小更大跨度>
    【解决方案2】:

    如果标题和菜单可能显示在彼此下方,您可以将标题和菜单放在单独的北面板中(这确实有效)。

    这样您至少可以确保显示菜单。

    【讨论】:

    • 我的意思是,它解决了这个问题,所以菜单不会被隐藏,但我希望有一个完整的解决方案。