Введение и Резюме

Доброе утро всем, в предыдущем сообщении в блоге мы начали перенос нашего старого приложения с устаревшего макета SplitApp на новый и блестящий гибкий макет столбца. Как вы помните, процесс был очень простым и гладким: нужно было изменить всего пару файлов, чтобы получить окончательный результат.

В этом сообщении блога я объясню вам, как полностью перенести наше приложение, заменив устаревший (начиная с версии 1.48) макет страницы новым динамическим макетом страницы.

В общем, мы заменим все, что у нас есть в нашей странице, на что-то похожее из DynamicPage.

  • Название страницы будет заменено на агрегацию DynamicPageTitle
  • SearchField из панели инструментов подзаголовка будет помещен внутри DynamicPageHeader.
  • ObjectHeader немного сложнее, и я подробно объясню в разделе ниже.

Шаг 1 — Обновите представление BusinessPartnerList

Этот шаг прост, нам просто нужно заменить заголовок нашей страницы и создать DynamicPageHeader, где мы разместим наше поле поиска. Все остальное будет размещено внутри агрегации контента без изменений.

Шаг 2 — Обновите представление BusinessPartnerDetail

Так что эта страница (например, BusinessPartnerSalesOrderDetail) немного сложнее, потому что нам нужно заменить больше вещей.

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

Для меня DynamicPageLayout идеален, я предпочитаю тратить больше времени на создание UI/UX, но чтобы получить идеальный результат, о котором я думал.

Итак, что нам нужно сделать:

  • Добавьте к DynamicPage DynamicPageTitle
  • Внутри DynamicPageTitle мы переместим все наши навигационные кнопки (открыть/закрыть полноэкранный режим и выйти). Эти кнопки будут размещены внутри агрегации navigationActions.
  • Вся информация ObjectHeader, такая как Intro и Title, будет помещена внутри заголовка Title и ExpandContent/snappedContent нашего sap.f.DynamicPagetitle.
  • Каждый ObjectAttribute и ObjectStatus, которые находятся внутри ObjectHeader, будут помещены в наш sap.f.DynamicPageHeader.
  • Все остальное будет размещено внутри агрегации контента DynamicPage.

Шаг 3 — Обновите представление BusinessPartnerSalesOrderDetail

Это представление более или менее соответствует BusinessPartnerDetail, поэтому вам просто нужно повторить тот же процесс, что и выше;)

Шаг 4 — наслаждайтесь конечным результатом

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

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

PS: Как обычно, анимация не очень плавная, но я думаю, что проблема может быть в моем текущем ноутбуке и количестве открытых в данный момент вкладок Chrome (+ все IDE, которые потребляют мою оперативную память)

Нужна обратная связь

Что вы думаете об этом сериале? Вы хотите больше сосредоточиться на каком-то конкретном аспекте SAPUI5?

Напишите это в разделе комментариев! Всем удачного кодирования!