Анонс 1.7.0.0 и новый компонент TfgBottomSheetLayout
В ближайшее время выйдет новый релиз 1.7.0.0, главной новинкой которого станет новый компонент TfgBottomSheetLayout. Это специальный компонент для организации отображения дочернего содержимого через выдвигаемую панель с нижней части экрана.
Обо всех деталях использования компонента ниже.
Структура
Новый компонент доступен на вкладке "FGX: Layouts" -> "TfgBottomSheetLayout" и представляет собой композицию из трех частей, аналогичную структуре компонента TfgDrawerLayout:
- TfgBottomSheet - выдвигаемая снизу страница.
- TfgBottomSheetContent - контейнер для основного содержимого экрана.
- TfgBottomSheetLayout - координатор, отвечающий за управление отображением страницы.
Состояния и управление TfgBottomSheet
Страница может находиться в одном из трех конечных состояний:
- Страница полностью открыта - TfgBottomSheetState.Expanded;
- Страница свернута, но видна ее часть - TfgBottomSheetState.Collapsed;
- Страница полностью скрыта - TfgBottomSheetState.Hidden.
В любой момент времени текущее состояние страницы можно получить через 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.
Модальный режим
По умолчанию панель открывается и не блокирует основное содержимое. Вы можете продолжать взаимодействовать с контентом TfgBottomSheetContent. Таким способом обычно делают панели для отображения сопутствующей детальной информации https://material.io/components/sheets-bottom. Например:
Однако, гораздо чаще используется модальный режим для организации контекстного меню или же открытия нового экрана:
В этом случае, вам необходимо открыть страницу используя метод TfgBottomSheet.ShowModal.
Демонстрационные проекты
В 1.7.0.0 включены два демо-проекты, которые показывают использование модального и обычного режимов использования. Их вы можете найти в ветке "Компоненты" -> "TfgBottomSheetLayout".
0 Comments
Recommended Comments
There are no comments to display.