Проблемы DockLayoutPanel с переносом текста

Поэтому я использую панель макета док-станции. На севере у меня есть заголовок и меню, а в центре есть таблица. Моя проблема в том, что когда заголовок становится длинным и оборачивает текст, он толкает строку меню вниз, и вы больше не можете ее видеть. Это потому, что вы должны установить фиксированные размеры для всех панелей, кроме центральной.

Я думал о том, чтобы переместить все это на центральную панель, но проблема в том, что когда моя таблица становится большой и появляется полоса прокрутки, я хочу всегда видеть заголовок и строку меню, даже при прокрутке таблицы. Поэтому я не могу просто поместить все в панель прокрутки.

Как я могу создать макет, отвечающий следующим требованиям: 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>

person Will    schedule 04.11.2013    source источник


Ответы (2)


Вы пытались использовать два DockLayoutPanel?

У первого есть заголовок в центральной области, а на юге другая DockLayoutPanel с меню в северной области и таблицей в центре?

person El Hoss    schedule 04.11.2013
comment
Я не пробовал это, но если я не ошибаюсь, так как у вас должен быть фиксированный размер на южной панели, вы не можете поместить в нее панель макета док-станции, если я не установлю фиксированную высоту для стола. - person Will; 04.11.2013
comment
Ты прав. Я думал о GXT BorderLayoutPanel. Вы пытались добавить две северные области в свою DockPanel. Один для названия и другой для вашего меню. - person El Hoss; 04.11.2013
comment
Это по-прежнему не решает проблему, потому что вы должны задать северной панели фиксированный размер, однако, если окно становится слишком маленьким и текст переносится, оно становится больше, чем установленный фиксированный размер. - person Will; 05.11.2013

Если заголовок и меню могут отображаться друг под другом, вы можете поместить заголовок и меню в отдельные северные панели (это действительно работает).

При этом вы можете, по крайней мере, убедиться, что меню отображается.

person Rob    schedule 05.11.2013
comment
Я имею в виду, что да, это решает проблему, чтобы меню не скрывалось, но я надеялся на полное решение. - person Will; 05.11.2013