Jump to content

Анонс 1.7.0.0 и новый компонент TfgBottomSheetLayout


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

Обо всех деталях использования компонента ниже.

Структура

Новый компонент доступен на вкладке "FGX: Layouts" -> "TfgBottomSheetLayout" и представляет собой композицию из трех частей, аналогичную структуре компонента TfgDrawerLayout:

image.png

  1. TfgBottomSheet - выдвигаемая снизу страница.
  2. TfgBottomSheetContent - контейнер для основного содержимого экрана. 
  3. TfgBottomSheetLayout - координатор, отвечающий за управление отображением страницы.

Состояния и управление TfgBottomSheet

Страница может находиться в одном из трех конечных состояний:

  1. Страница полностью открыта - TfgBottomSheetState.Expanded;
  2. Страница свернута, но видна ее часть - TfgBottomSheetState.Collapsed
  3. Страница полностью скрыта - TfgBottomSheetState.Hidden.

image.png image.png image.png 

В любой момент времени текущее состояние страницы можно получить через TfgBottomSheet.State. А чтобы программно управлять страницей, можно воспользоваться следующими методами TfgBottomSheet:

    /// <summary>
    ///   Полностью модально разворачивает панель с анимацией. Основное содержимое <c>TfgBottomSheetLayout.Content</c>
    ///   недоступно.</summary>
    /// <remarks>Если панель открыта, то ничего не делает.</remarks>
    procedure ShowModal;

    /// <summary>Полностью разворачивает панель с анимацией.</summary>
    /// <remarks>Если панель открыта, то ничего не делает.</remarks>
    procedure Expand;

    /// <summary>Сворачивает панель до заголовка с анимацией. </summary>
    /// <remarks>
    ///   Если у панели нет заголовка, то полностью скрывает панель с экрана. Если панель закрыта, то ничего не делает.
    /// </remarks>
    procedure Collapse;

    /// <summary>Полностью скрывает панель с экрана с анимацией.</summary>
    /// <remarks>Если панель уже полностью скрыта, то ничего не делает.</remarks>
    procedure Hide;

Настройка скрытия

Если вы хотите запретить полное скрытие страницы с экрана, вы можете это сделать при помощи свойства TfgBottomSheet.IsHideable

    /// <summary>Может ли пользователь полностью скрыть панель?</summary>
    property IsHideable: Boolean read FIsHideable write SetIsHideable default DefaultIsHideable;

Настройка внешнего вида

За высоту видимой части страницы в свернутом режиме отвечает свойство TfgBottomSheet.PeekHeight:

    /// <summary>Высота части панели, которая не задвигается целиком.</summary>
    /// <remarks>Работает в связке со свойством<c>Hideable</c>.</remarks>
    property PeekHeight: Single read FPeekHeight write SetPeekHeight stored IsPeekHeightStored nodefault;

По умолчанию страница имеет непрозрачный фон. Однако, в определенных случаях, удобно использовать прозрачный фон. Таким образом можно добиться любой разметки вашего содержимого и добавить любые вложенные контейнеры. За прозрачный режим отвечает свойство TfgBottomSheet.IsTransparent.

image.png

Модальный режим

По умолчанию панель открывается и не блокирует основное содержимое. Вы можете продолжать взаимодействовать с контентом TfgBottomSheetContent. Таким способом обычно делают панели для отображения сопутствующей детальной информации https://material.io/components/sheets-bottom. Например:

image.png image.png   

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

image.png

В этом случае, вам необходимо открыть страницу используя метод TfgBottomSheet.ShowModal.

Демонстрационные проекты

В 1.7.0.0 включены два демо-проекты, которые показывают использование модального и обычного режимов использования. Их вы можете найти в ветке "Компоненты" -> "TfgBottomSheetLayout".

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...