Руководство API скрипты

ListView

класс в UnityEngine.UIElements / Наследует от: UIElements.BindableElement / Реализовано в: UnityEngine.UIElementsModule / Реализует интерфейсы: ISerializationCallbackReceiver

Описание

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

using System; using System.Collections.Generic;

using UnityEditor; using UnityEngine; using UnityEngine.UIElements;

namespace UIElementsExamples { public class ListViewExampleWindow : EditorWindow { [MenuItem("Window/ListViewExampleWindow")] public static void OpenDemoManual() { GetWindow().Show(); }

public void OnEnable() { // Создаем список данных, здесь просто числа в интервале [1, 1000] const int itemCount = 1000; var items = new List(itemCount); for (int i = 1; i <= itemCount; i++) items.Add(i.ToString());

// Функция makeItem будет вызываться по мере необходимости // когда the ListView требуется больше элементов для рендера Func<VisualElement> makeItem = () => new Label();

// Когда пользователь прокручивает список объектов ListView // будет перерабатывать элементы, созданные "makeItem" // и вызывать обратный вызов "bindItem", чтобы связать // элемент с соответствующим элементом данных (указанный как индекс в списке) Action<VisualElement, int> bindItem = (e, i) => (e as Label).text = items[i];

// Предоставляем списковому представлению явную высоту для каждой строки // чтобы он мог рассчитать, сколько элементов нужно отобразить на самом деле const int itemHeight = 16;

var listView = new ListView(items, itemHeight, makeItem, bindItem);

listView.selectionType = SelectionType.Multiple;

listView.onItemChosen += obj => Debug.Log(obj); listView.onSelectionChanged += objects => Debug.Log(objects);

listView.style.flexGrow = 1.0f;

rootVisualElement.Add(listView); } } }

Статические Свойства

borderUssClassName Имя класса USS. Включите свойство showBorder, чтобы применить этот класс к ListView.
dragHoverBarUssClassName Имя класса USS для полосы перетаскивания.
itemAlternativeBackgroundUssClassName Имя класса USS для нечетных строк в ListView.
itemDragHoverUssClassName Имя класса USS, которое применяется к элементу при перетаскивании.
itemSelectedVariantUssClassName Имя класса USS элементов элемента в элементах этого типа, когда они выбраны.
itemUssClassName Имя класса USS элементов элемента в элементах этого типа.
ussClassName Имя класса USS для элементов этого типа.

Свойства

bindItem Обратный вызов для привязки элемента данных к визуальному элементу.
horizontalScrollingEnabled Этот флаг указывает, должен ли ListView отображать горизонтальную полосу прокрутки, когда его содержимое не помещается. Значение по умолчанию неверно.
itemHeight ListView требует, чтобы все визуальные элементы имели одинаковую высоту, чтобы он мог вычислить разумный размер прокрутки. Это свойство должно быть установлено для работы представления списка.
itemsSource Источник данных товаров. Это свойство должно быть установлено для работы представления списка.
makeItem Обратный вызов для построения VisualElement, который будет служить шаблоном для каждого повторно используемого и повторно связанного элемента в списке. Это свойство должно быть установлено для работы представления списка.
reorderable Получает или задает значение, указывающее, может ли пользователь перетаскивать элементы списка, чтобы изменить их порядок.
resolvedItemHeight Вычисленная высота с выравниванием по пикселям для элементов списка. Это значение будет меняться в зависимости от масштабирования текущей панели в dpi. Смотрите так же: ListView.itemHeight.
selectedIndex Возвращает индекс выбранного элемента в источнике элементов. Если выбрано несколько элементов, возвращает индекс первого выбранного элемента.
selectedIndices Индексы выбранных элементов в источнике элементов.
selectedItem Возвращает выбранный элемент из источника элементов. Если выбрано несколько элементов, возвращает первый выбранный элемент.
selectedItems Выбранные элементы из источника элементов.
selectionType Управляет состоянием выбора. Вы можете установить состояние для отключения выбора, иметь один выбираемый элемент или иметь несколько выбираемых элементов.
showAlternatingRowBackgrounds Включает это свойство, чтобы отображать чередующиеся цвета фона для строк в ListView.
showBorder Включает это свойство, чтобы отобразить границу вокруг ListView.
showBoundCollectionSize Когда вы привязываете представление списка к массиву, это свойство определяет, будет ли представление списка отображать размер коллекции в качестве первого элемента списка. Установите значение true, чтобы отобразить размер коллекции, и значение false, чтобы пропустить его. Значение по умолчанию - true. Смотрите так же: UnityEditor.UIElements.BindingExtensions.Bind
unbindItem Обратный вызов для отвязки элемента данных от визуального элемента.

Публичные Методы

AddToSelection Добавляет элемент в коллекцию выбранных элементов.
ClearSelection Отменяет выбор любых выбранных элементов.
Refresh Очищает, воссоздайте все видимые визуальные элементы и заново привяжите все элементы. Это должно вызываться всякий раз, когда изменяется источник элементов..
RemoveFromSelection Удаляет элемент из коллекции выбранных элементов.
ScrollTo Прокручивает до определенного визуального элемента.
ScrollToItem Прокручивает до определенного индекса элемента и сделайте его видимым.
SetSelection Устанавливает текущий выбранный элемент.
SetSelectionWithoutNotify Устанавливает коллекцию выбранных элементов без запуска обратного вызова изменения выбора.

События

onItemChosen Обратный вызов при выборе элемента (двойной щелчок). Это отличается от простого выбора.
onItemsChosen Обратный вызов запускается, когда пользователь «воздействует» на выбор одного или нескольких элементов, например, дважды щелкнув или нажав Enter.
onSelectionChange Обратный вызов срабатывает при изменении выбора.
onSelectionChanged Обратный вызов срабатывает при изменении выбора.

Унаследованные члены

Статические Свойства

disabledUssClassName Имя класса USS локальных отключенных элементов.

Свойства

binding Объект привязки, который будет обновлен.
bindingPath Путь целевого свойства для привязки.
canGrabFocus Вовращает true, если элемент может быть сфокусирован.
delegatesFocus Должен ли элемент делегировать фокус своим дочерним элементам.
focusable True, если элемент может быть сфокусирован.
focusController Вовращает контроллер фокуса для этого элемента.
tabIndex Целое число, используемое для сортировки объектов фокусировки в кольце фокусировки. Должно быть больше или равно нулю.
childCount Количество дочерних элементов в contentContainer объекта
contentContainer К этому элементу добавляются дочерние элементы
customStyle Возвращает метод доступа к свойствам пользовательского стиля для этого элемента.
enabledInHierarchy Возвращает true, если VisualElement включен в своей собственной иерархии.
enabledSelf Возвращает true, если VisualElement включен локально.
experimental Возвращает экспериментальные интерфейсы UIElement.
generateVisualContent Вызывается, когда необходимо (повторно) сгенерировать визуальное содержимое VisualElement.
hierarchy Доступ к физической иерархии этого элемента
pickingMode Определяет, можно ли выбрать этот элемент во время запросов mouseEvents или IPanel.Pick.
resolvedStyle Возвращает разрешенные значения стиля VisualElement.
schedule Извлекает IVisualElementScheduler этого VisualElement.
style Ссылка на объект стиля элемента.
styleSheets Возвращает VisualElementStyleSheetSet, управляющий таблицами стилей, прикрепленными к этому элементу.
this[int] Доступ к физической иерархии элемента
tooltip Текст, отображаемый внутри информационного поля после того, как пользователь наведет курсор на элемент в течение небольшого промежутка времени.
usageHints Комбинация значений подсказок, указывающих предполагаемые шаблоны использования высокого уровня для VisualElement. Это свойство можно задать только в том случае, если VisualElement еще не является частью панели. Будучи частью Panel, это свойство фактически становится доступным только для чтения, и попытки изменить его вызовут исключение. Спецификация надлежащих UsageHints побуждает систему принимать более эффективные решения о том, как обрабатывать или ускорять определенные операции на основе ожидаемого шаблона использования. Обратите внимание, что эти подсказки не влияют на поведенческие или визуальные результаты, а влияют только на общую производительность панели и элементов внутри. Как правило, рекомендуется всегда рассматривать вопрос об указании правильных UsageHints, но имейте в виду, что некоторые UsageHints могут игнорироваться внутри при определенных условиях (например, из-за аппаратных ограничений на целевой платформе).
userData Это свойство можно использовать для связывания пользовательских данных приложения с этим VisualElement.
viewDataKey Используется для сохранения данных просмотра (т. е. расширенных состояний дерева, положения прокрутки, уровня масштабирования).

Публичные Методы

HandleEvent Обработка события, чаще всего путем выполнения обратных вызовов, связанных с событием.
HasBubbleUpHandlers Возвращает true, если к этому объекту прикреплены обработчики событий для фазы распространения события BubbleUp.
HasTrickleDownHandlers Возвращает значение true, если к этому объекту присоединены обработчики событий для фазы распространения события TrickleDown.
RegisterCallback Добавляет обработчик событий в экземпляр. Если обработчик события уже зарегистрирован для той же фазы (TrickleDown или BubbleUp), то этот метод не действует.
SendEvent Отправляет событие обработчику событий.
UnregisterCallback Удаляет обратный вызов из экземпляра.
Blur Говорит элементу, чтобы освободить фокус.
Focus Пытается сосредоточить внимание на этом элементе.
Add Добавляет элемент в contentContainer этого элемента
BringToFront Помещает этот элемент в конец списка родительских дочерних элементов. Элемент будет визуально находиться перед любыми перекрывающимися одноуровневыми элементами.
Children Возвращает элементы из своего содержимогоконтейнера
Clear Удаляет все дочерние элементы из контейнера содержимого этого элемента.
Contains Возвращает true, если элемент является прямым дочерним элементом этого VisualElement.
ElementAt Извлекает дочерний элемент в позиции
EnableInClassList Включает или отключает класс с заданным именем.
FindAncestorUserData Находит иерархию этого визуального элемента и извлеките сохраненные пользовательские данные, если они будут найдены.
FindCommonAncestor Находит наименьшего общего предка между двумя элементами VisualElements внутри иерархии VisualTree.
GetClasses Получает классы для этого элемента.
GetFirstAncestorOfType Проходит вверх по иерархии, начиная с родительского элемента, и возвращает первый VisualElement этого типа.
GetFirstOfType Проходит вверх по иерархии, начиная с этого элемента, и возвращает первый VisualElement этого типа.
IndexOf Извлекает дочерний индекс указанного VisualElement.
Insert Вставьте элемент в contentContainer этого элемента
MarkDirtyRepaint Запускает перерисовку VisualElement в следующем кадре.
PlaceBehind Помещает элемент прямо перед родственным элементом в их родительском дочернем списке. Если элемент и позиция родственного элемента перекрываются, элемент будет визуально позади своего родственного элемента.
PlaceInFront Помещает элемент сразу после родственного элемента в список родительских дочерних элементов. Если элемент и позиция родственного элемента перекрываются, элемент будет визуально впереди своего родственного элемента.
Remove Удаляет дочерний элемент из иерархии
RemoveAt Удалите дочерний элемент, расположенный в этой позиции, из контейнера содержимого этого элемента.
RemoveFromHierarchy Удаляет элемент из его родительской иерархии
SendEvent Отправляет событие обработчику событий.
SendToBack Отправляет элемент в начало списка родительских дочерних элементов. Элемент будет визуально позади любых перекрывающихся элементов родственного уровня.
SetEnabled Изменяет состояние включения VisualElement. Отключенный VisualElement не получает большинство событий.
Sort Переупорядочивает дочерние элементы из этого контейнера содержимого VisualElement.
ToggleInClassList Переключает между добавлением и удалением данного имени класса из списка классов.
Вы можете отблагодарить автора, за перевод документации на русский язык. Донат
API скрипты 2021.3