Squeak.ru - шаблоны программирования

Создание гибкой панели в GWT для заполнения страницы?

Я хотел бы, чтобы панель в GWT заполняла страницу без необходимости устанавливать размер. Есть ли способ сделать это? В настоящее время у меня есть следующее:

public class Main  implements EntryPoint
{
    public void onModuleLoad()
    {
        HorizontalSplitPanel split = new HorizontalSplitPanel();
        //split.setSize("250px", "500px");
        split.setSplitPosition("30%");

        DecoratorPanel dp = new DecoratorPanel();
        dp.setWidget(split);

        RootPanel.get().add(dp);
    }

}

С предыдущим фрагментом кода ничего не появляется. Есть ли вызов метода, который мне не хватает?

Спасибо.


ОБНОВЛЕНИЕ 17 сен.

Я поместил несколько кнопок (явно задав их размер) с каждой стороны, и это все равно не работает. Я действительно удивлен, что нет ни класса FillLayout, ни метода setFillLayout, ни setDockStyle(DockStyle.Fill), ни чего-то в этом роде. Может быть, это невозможно? Но для такой популярности, как GWT, я думаю, это было бы возможно.

ОБНОВЛЕНИЕ 18 сен.

Я попытался установить ширину и высоту RootPanel на 100%, но это все равно не сработало. Спасибо за предложение, хотя, казалось, что оно, возможно, сработает. Любые другие предложения??

17.09.2008

Ответы:


1

Google ответил на основную часть вашего вопроса в одном из часто задаваемых вопросов: http://code.google.com/webtoolkit/doc/1.6/FAQ_UI.html#How_do_I_create_an_app_that_fills_the_page_vertically_when_the_b

Основной момент заключается в том, что вы не можете установить высоту на 100%, вы должны сделать что-то вроде этого:

final VerticalPanel vp = new VerticalPanel();
vp.add(mainPanel);
vp.setWidth("100%");
vp.setHeight(Window.getClientHeight() + "px");
Window.addResizeHandler(new ResizeHandler() {

  public void onResize(ResizeEvent event) {
    int height = event.getHeight();
    vp.setHeight(height + "px");
  }
});
RootPanel.get().add(vp);
06.06.2009
  • Это отличный ответ, но теперь для этого есть встроенные возможности GWT. Смотрите мой ответ для некоторых ссылок. 23.05.2012

  • 2

    Ответ Бена очень хорош, но также устарел. Обработчик изменения размера был необходим в GWT 1.6, но сейчас у нас версия 2.4. Вы можете использовать DockLayoutPanel, чтобы ваш контент заполнял страницу по вертикали. См. пример почтового приложения, в котором используется эта панель.

    23.05.2012
  • вот источник: code.google.com/p/google-web-toolkit/source/browse/trunk/ 24.08.2012

  • 3

    Я думаю, вам нужно поместить что-то слева и/или справа от разделения (split.setLeftWidget(widget), split.setRightWidget(widget) ИЛИ split.add(widget), который добавит сначала слева, затем вправо), чтобы что-нибудь появилось.

    17.09.2008

    4

    Попробуйте установить ширину и/или высоту корневой панели на 100% перед добавлением виджета.

    18.09.2008

    5

    Панели автоматически изменяются до наименьшей видимой ширины. Таким образом, вы должны изменить размер каждой панели, которую вы добавляете в RootPanel, до 100%, включая вашу SplitPanel. Сама RootPanel не требует изменения размера. Так что постарайтесь:

    split.setWidth("100%");
    split.setHeight("100%");
    
    18.09.2008
  • Drejc, Спасибо за ответ. Я попытался установить размеры SplitPanel и размеры RootPanel на 100%. Все равно не повезло. Еще раз спасибо. 19.09.2008
  • Установите свой стиль CSS, чтобы границы панели были видны. Затем вы увидите, размер какой панели нужно изменить. Это мой предпочтительный способ устранения неполадок, когда я как-то теряюсь в панелях и не знаю, какая из них за что отвечает. 21.09.2008

  • 6

    Документация для DecoratorPanel говорит:

    Если вы устанавливаете ширину или высоту DecoratorPanel, вам необходимо установить высоту и ширину ячейки middleCenter на 100%, чтобы ячейка middleCenter занимала все доступное пространство. Если вы не зададите ширину и высоту DecoratorPanel, она будет плотно оборачивать свое содержимое.

    19.09.2008

    7

    Проблема в том, что ячейка middleCenter DecoratorPanel по умолчанию будет плотно заполняться вашим содержимым, а SplitPanel не позволяет устанавливать размер стиля «100%». Чтобы делать то, что вы хотите, установите соответствующий стиль таблицы в своем CSS:

    .gwt-DecoratorPanel .middleCenter { высота: 100%; ширина: 100%; }

    18.01.2009

    8

    Для меня это не сработает, если я просто установлю ширину, например

    панель.setWidth("100%");

    Панель представляет собой вертикальную панель, которая имеет случайный размер, и я не знаю, откуда он взялся. Но то, что прокомментировал @Ben Bederson, сработало для меня очень хорошо после того, как я добавил строку:

    panel.setWidth(Window.getClientWidth() + "px");

    Только это, ничего больше. Спасибо

    21.07.2015
    Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...


    © 2024 squeak.ru, Squeak.ru - шаблоны программирования