FGX.CollectionView.TfgCustomCollectionView: различия между версиями

Материал из FGX Native Докуметации
Перейти к навигации Перейти к поиску
Строка 13: Строка 13:
 
== Описание ==
 
== Описание ==
  
{{#spoiler:hide=hide_message|spoiler_text}}
+
{{#spoiler:hide=hide_message|
 +
 
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Текст заголовка !! Текст заголовка !! Текст заголовка
 +
|-
 +
| Текст ячейки || Текст ячейки || Текст ячейки
 +
|-
 +
| Текст ячейки || Текст ячейки || Текст ячейки
 +
|-
 +
| Текст ячейки || Текст ячейки || Текст ячейки
 +
|}
 +
 
 +
}}
  
 
<span style="color:gray">Описание отсутствует.</span>
 
<span style="color:gray">Описание отсутствует.</span>

Версия 00:58, 13 июня 2019

Delphi

TfgCustomCollectionView = class (TfgControl, IFGXContainer)

TComponent -> TfgControl -> TfgCustomCollectionView

Прямые наследники: TfgCollectionView

Описание

Описание отсутствует.

Конструкторы

constructor
Create(AOwner: TComponent)

Описание отсутствует.

Методы

procedure
ReloadItems()

Перезагружает элементы коллекции. Форсирует перезагрузку всех элементов списка.

Потокобезопасный метод. Можно вызывать не из главного потока. Этот метод автоматически завершает процесс PullToRefresh , если он был запущен.
procedure
ReloadItem(const AItemIndex: Integer)

Перезагружает элемент коллекции по указанному индексу.

Потокобезопасный метод. Можно вызывать не из главного потока.
function
GetItemId(const AItemIndex: Integer): Int64

Возвращает идентификатор элемента по его порядковому индексу. Для этого использует данные, полученные в результате работы обработчика события OnGetItemId . По умолчанию использует порядковый иднекс элемента.

function
FindItemIndexById(const AItemId: Int64; out AItemIndex: Integer): Boolean

Поиск порядкового индекса элемента по его уникальному идентификатору. Задание уникальных идентификаторо элементов осуществляется через событие OnGetItemId .

Сложность поиска O(n). Если индекс не найден, то AItemIndex будет содержать -1.
function
FindItemIndexByPoint(const APoint: TPointF; out AItemIndex: Integer): Boolean

Поиск порядкового индекса элемента по координатам точки в CollectionView, попадающая в один из видимых элементов. Работает только для видимых элементов с индексами в диапазоне GetFirstVisibleItemIndex и GetLastVisibleItemIndex . APoint указывается в системе координат контрола с учетом смещения прокрутки.

Если индекс не найден, то AItemIndex будет содержать -1.
function
FindItemIndexByObject(const AObject: TObject; out AItemIndex: Integer): Boolean

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

Если индекс не найден, то AItemIndex будет содержать -1.
function
FindItemWrapperByIndex(const AItemIndex: Integer; out AItemWrapper: TfgItemWrapper): Boolean

Ищет TfgItemWrapper для работы с контролом элемента по индексу. Если элемента по указанному индексу нет, то в AItemWrapper будет nil.

Работает только для индексов в диапазоне GetFirstVisibleItemIndex и GetLastVisibleItemIndex . Сложность O(1).
function
FindItemControlByIndex(const AItemIndex: Integer; out AControl: TfgControl): Boolean

Ищет контрол TfgControl элемента по индексу. Если элемента по указанному индексу нет, то в AControl будет nil.

Работает только для индексов в диапазоне GetFirstVisibleItemIndex и GetLastVisibleItemIndex . Сложность O(1).
function
GetFirstVisibleItemIndex(): Integer

Возвращает индекс первого видимого элемента на экране.

Если список пуст, то вернет -1.
function
GetLastVisibleItemIndex(): Integer

Возвращает индекс последнего видимого элемента на экране.

Если список пуст, то вернет -1.
function
CreateStyle(): TfgCollectionViewStyle

Создает новый пустой стиль с уникальным именем TfgCollectionViewStyle.TfgStyleName .

procedure
AddStyle(const AStyle: TfgCollectionViewStyle)

Добавляет стиль в список стилей контрола.

function
GetStyle(const AStyleName: string): TfgCollectionViewStyle

Возвращает стиль по его имени.

Если стиль не найден, то вернет nil.
function
GetStyleIndex(const AStyleName: string): Integer

Возвращает индекс стиля по его имени. Первый стиль имеет индекс 0.

Если стиль не найден, то вернет -1.
function
GetStyleForItemIndex(const AItemIndex: Integer): TfgCollectionViewStyle

Возвращает стиль элемента по указанному индексу элемента.

Если стиль не найден, или стилей нет, то вернет nil.
procedure
ScrollToItem(const AItemIndex: Integer; const AWithAnimation: Boolean)

Описание отсутствует.

procedure
ResetSelection()

Сбрасывает текущее выделение всех выделенных элементов.

procedure
ResetSelection(const AItemIndex: Integer)

Сбрасывает текущее выделение элемента с указанным индексом.

procedure
SelectItem(const AItemIndex: Integer)

Выделяет элемент с указанным индексом.

Работает только, если стиль элемента поддерживает выделение TfgCollectionViewStyle.Selectable и стоит режим выделения отличный от none SelectionMode != TfgCollectionViewSelectionMode.None .
procedure
SelectAllItems()

Выделяет все элементы списка.

Работает только, если стиль элемента поддерживает выделение TfgCollectionViewStyle.Selectable и стоит режим выделения MultiSelect SelectionMode = TfgCollectionViewSelectionMode.MultiSelect .
procedure
BeginPullToRefresh()

Запускает программным способом процесс обновления данных с одновременным отображением индикатора загрузки. Разработчик должен выполнить/запустить процесс обновления данных и по окончании загрузки данных сообщить об этом контролу, вызвав EndPullToRefresh . Обратите внимание, что для визуального обновления данных, разработчику так же нужно воспользовать одним из методов обновления данных ReloadItems или ReloadItem .

Если список уже находится в состоянии обновления IsPullToRefreshActive = True , то метод не будет запускать новый процесс обновления.
procedure
EndPullToRefresh()

Заканчивает процесс обновления данных, начатый пользователем. Это приводит к скрытию индикатора загрузки и загрузки данных в список. Обратите внимание, что для визуального обновления данных, разработчику так же нужно воспользовать одним из методов обновления данных ReloadItems или ReloadItem .

Потокобезопасный метод. Можно вызывать не из главного потока.

Свойства

property
Count: Integer

Возвращает общее количество элементов списка. Использует обработчик OnGetItemCount .

property
StylesContainer: TfgCollectionViewStyles

Контейнер стилей, содержит все стили коллекции.

property
ContentOffset: TPointF

Возвращает смещение контента.

property
Selection: TfgCollectionViewItemsArray

Массив индексов выделенных элементов.

В случае, если был вызван ReloadItems при наличии выделение, работа данного метода первый раз может занимать O(n). При этом дальнешее изменение выделения не уже никак не влияет на сложность и по прежнему, будет занимать O(k), где k - это количество выделенных элементов.
property
IsPullToRefreshActive: Boolean

Описание отсутствует.

property
ScrollGlowColorLink: TfgAssetColorLink

Описание отсутствует.

property
SelectionColorLink: TfgAssetColorLink

Описание отсутствует.

property
PullToRefreshOptions: TfgPullToRefreshOptions

Настройки режима обновления списка "Потяни и обнови".

property
ScrollGlowColor: TAlphaColor

Цвет эффекта прокручивания списка, который появляется при попытке прокрутить список за его границы.

Актуально только для Андроид платформы.
property
ScrollGlowColorName: TfgAssetName

Описание отсутствует.

property
SelectionColor: TAlphaColor

Общий цвет выделение элементов по умолчанию. Каждый стиль элемента может переопределить это значение через аналогичное свойство TfgCollectionViewStyle.SelectionColor .

Если указан цвет TAlphaColorRec.Null , то компонент будет использовать системный цвет для выделения, который зависит от платформы и версии ОС.
property
SelectionColorName: TfgAssetName

Название ресурса цвета выделения элементов в контроле.

property
SelectionMode: TfgCollectionViewSelectionMode

Режим выделения элементов. Всего существует три способа выделения:

  • None - Элементы не поддерживают выделение.
  • SingleSelect - Только один элемент может быть выделени. При этом при попытке выделить другой элемент выделение с предыдущего сбрасывается.
  • MultiSelect - Поддерживается выделение любого количества элементов.

События

event
OnGetItemCount: Integer

Через это событие компонент запрашивает общее количество элементов, которые необходимо отобразить.

Компонент постоянно использует это событие для получения количества элементов. Поэтому избегайте практики долгого вычисления количества. Это может сказать на скорости прокрутки списка.
event
OnGetItemId: TfgOnGetItemId

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

Обязательно должен быть уникальным среди идентификаторов всех элементов!
event
OnGetItemStyle: string

Через это событие компонент запрашивает название стиля, которое необходимо применить к элементу по указанному индексу.

Компонент использует это событие в момент, когда указанный элемент готовится появится на экране. Обратите внимание, что если у вас в коллекции используется только один стиль, то это событие можно не использовать. Компонент автоматически выберет первый стиль, если вы не используете это событие.
event
OnBindItem: TfgOnBindItem

Через это событие происходит связь пользовательских данных с конкретным элементом списка по указанному индексу.

Все необходимые данные для отображения должны быть уже предварительно загружены и приготовлены к отображению. В этом событие необходимо связать готовые данные с конкретными контролами.
event
OnTapItem: TfgOnItemTap

Пользователь нажал на элемент списка.

event
OnSelectionChanged: TfgOnSelectionChangedEvent

Пользователь совершил выделение одного или нескольких элементов списка. За возможность выделения элемента отвечает свойство стиля TfgCollectionViewStyle.Selectable .

event
OnItemSelectionChanged: TfgOnItemSelectionChanged

Изменилось выделение у элемента с индексом AItemIndex .

event
OnScroll: TfgOnScrollEvent

Срабатывает, когда содержимое списка прокручивается.

event
OnPullToRefresh: TNotifyEvent

Срабатывает, когда пользователь запускает процесс обновления списка. Чтобы это событие работало, нужно обязательно включить поддержку режима обновления данных EnabledPullToRefresh = True .

Константы

const
DefaultScrollGlowColor: TAlphaColor

Описание отсутствует.

const
DefaultSelectionMode: TfgCollectionViewSelectionMode

Описание отсутствует.

const
DefaultSelectionColor: TAlphaColor

Описание отсутствует.