Version: 2019.2
LanguageEnglish
  • C#

ListView

class in UnityEngine.UIElements

/

Inherits from:UIElements.VisualElement

/

Implemented in:UnityEngine.UIElementsModule

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

A vertically scrollable area that only creates visual elements for visible items while allowing the binding of many more items. As the user scrolls, visual elements are recycled and re-bound to new data items.

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<ListViewExampleWindow>().Show(); }

public void OnEnable() { // Create some list of data, here simply numbers in interval [1, 1000] const int itemCount = 1000; var items = new List<string>(itemCount); for (int i = 1; i <= itemCount; i++) items.Add(i.ToString());

// The "makeItem" function will be called as needed // when the ListView needs more items to render Func<VisualElement> makeItem = () => new Label();

// As the user scrolls through the list, the ListView object // will recycle elements created by the "makeItem" // and invoke the "bindItem" callback to associate // the element with the matching data item (specified as an index in the list) Action<VisualElement, int> bindItem = (e, i) => (e as Label).text = items[i];

// Provide the list view with an explict height for every row // so it can calculate how many items to actually display 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); } } }

Static Properties

itemSelectedVariantUssClassNameUSS class name of item elements in elements of this type, when they are selected.
itemUssClassNameUSS class name of item elements in elements of this type.
ussClassNameUSS class name of elements of this type.

Properties

bindItemCallback for binding a data item to the visual element.
itemHeightListView requires all visual elements to have the same height so that it can calculate a sensible scroller size. This property must be set for the list view to function.
itemsSourceThe items data source. This property must be set for the list view to function.
makeItemCallback for constructing the VisualElement that will serve as the template for each recycled and re-bound element in the list. This property must be set for the list view to function.
selectedIndexCurrently selected item index in the items source. If multiple items are selected, this will return the first selected item's index.
selectedItemThe currently selected item from the items source. If multiple items are selected, this will return the first selected item.
selectionTypeControls the selection state, whether: selections are disabled, there is only one selectable item, or if there are multiple selectable items.

Public Methods

RefreshClear, recreate all visible visual elements, and rebind all items. This should be called whenever the items source changes.
ScrollToScroll to a specific visual element.
ScrollToItemScroll to a specific item index and make it visible.

Events

onItemChosenCallback for when an item is chosen (double-click). This is different from just a selection.
onSelectionChangedCallback for a selection change.

Inherited Members

Properties

canGrabFocusReturn true if the element can be focused.
delegatesFocusWhether the element should delegate the focus to its children.
focusableTrue if the element can be focused.
focusControllerReturn the focus controller for this element.
tabIndexAn integer used to sort focusables in the focus ring. Must be greater than or equal to zero.
childCount Number of child elements in this object's contentContainer
contentContainer child elements are added to this element, usually this
customStyleReturns the custom style properties accessor for this element.
enabledInHierarchyReturns true if the VisualElement is enabled in its own hierarchy.
enabledSelfReturns true if the VisualElement is enabled locally.
hierarchy Access to this element physical hierarchy
pickingModeDetermines if this element can be pick during mouseEvents or IPanel.Pick queries.
resolvedStyleReturns the VisualElement resolved style values.
scheduleRetrieves this VisualElement's IVisualElementScheduler
styleReference to the style object of this element.
styleSheetsReturns a VisualElementStyleSheetSet that manipulates style sheets attached to this element.
this[int] Access to this element physical hierarchy
tooltipText to display inside an information box after the user hovers the element for a small amount of time.
userDataThis property can be used to associate application-specific user data with this VisualElement.
viewDataKeyUsed for view data persistence (ie. tree expanded states, scroll position, zoom level).

Public Methods

HandleEventHandle an event, most often by executing the callbacks associated with the event.
HasBubbleUpHandlersReturn true if event handlers for the event propagation BubbleUp phase have been attached on this object.
HasTrickleDownHandlersReturns true if event handlers, for the event propagation TrickleDown phase, are attached to this object.
RegisterCallbackAdds an event handler to the instance. If the event handler has already been registered for the same phase (either TrickleDown or BubbleUp) then this method has no effect.
SendEventSends an event to the event handler.
UnregisterCallbackRemove callback from the instance.
BlurTell the element to release the focus.
FocusAttempt to give the focus to this element.
AddAdd an element to this element's contentContainer
BringToFrontBrings this element to the end of its parent children list. The element will be visually in front of any overlapping sibling elements.
ChildrenReturns the elements from its contentContainer
ClearRemove all child elements from this element's contentContainer
ContainsReturns true if the element is a direct child of this VisualElement
ElementAtRetrieves the child element at position
EnableInClassListEnables or disables the class with the given name.
FindAncestorUserDataSearchs up the hierachy of this VisualElement and retrieves stored userData, if any is found.
FindCommonAncestorFinds the lowest commont ancestor between two VisualElements inside the VisualTree hierarchy
GetFirstAncestorOfTypeWalks up the hierarchy, starting from this element's parent, and returns the first VisualElement of this type
GetFirstOfTypeWalks up the hierarchy, starting from this element, and returns the first VisualElement of this type
IndexOfRetrieves the child index of the specified VisualElement.
InsertInsert an element into this element's contentContainer
MarkDirtyRepaintTriggers a repaint of the VisualElement on the next frame.
PlaceBehindPlaces this element right before the sibling element in their parent children list. If the element and the sibling position overlap, the element will be visually behind of its sibling.
PlaceInFrontPlaces this element right after the sibling element in their parent children list. If the element and the sibling position overlap, the element will be visually in front of its sibling.
RemoveRemoves this child from the hierarchy
RemoveAtRemove the child element located at this position from this element's contentContainer
RemoveFromHierarchyRemoves this element from its parent hierarchy
SendEventSends an event to the event handler.
SendToBackSends this element to the beginning of its parent children list. The element will be visually behind any overlapping sibling elements.
SetEnabledChanges the VisualElement enabled state. A disabled VisualElement does not receive most events.
SortReorders child elements from this VisualElement contentContainer.
ToggleInClassListToggles between adding and removing the given class name from the class list.