class in UnityEngine.UIElements
/
Inherits from:UIElements.BindableElement
/
Implemented in:UnityEngine.UIElementsModule
Implements interfaces:ISerializationCallbackReceiver
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); } } }
borderUssClassName | The USS class name. Enable the showBorder property to apply this class to the ListView. |
dragHoverBarUssClassName | The USS class name of the drag hover bar. |
itemAlternativeBackgroundUssClassName | The USS class name for odd rows in the ListView. |
itemDragHoverUssClassName | The USS class name that is applied to the element on drag hover. |
itemSelectedVariantUssClassName | The USS class name of item elements in elements of this type, when they are selected. |
itemUssClassName | The USS class name of item elements in elements of this type. |
ussClassName | USS class name for elements of this type. |
bindItem | Callback for binding a data item to the visual element. |
horizontalScrollingEnabled | This flag indicates whether the ListView should show a horizontal scroll bar when its content does not fit. The default value is False. |
itemHeight | ListView 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. |
itemsSource | The items data source. This property must be set for the list view to function. |
makeItem | Callback 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. |
reorderable | Gets or sets a value that indicates whether the user can drag list items to reorder them. |
resolvedItemHeight | Computed pixel aligned height for the list elements. This value will change depending on the current panel's dpi scaling. See Also: ListView.itemHeight. |
selectedIndex | Returns the selected item's index in the items source. If multiple items are selected, returns the first selected item's index. |
selectedIndices | The indices of selected items in the items source. |
selectedItem | Returns the selected item from the items source. If multiple items are selected, returns the first selected item. |
selectedItems | The selected items from the items source. |
selectionType | Controls the selection state. You can set the state to disable selections, have one selectable item, or have multiple selectable items. |
showAlternatingRowBackgrounds | Enable this property to display alternating background colors for rows in the ListView. |
showBorder | Enable this property to display a border around the ListView. |
showBoundCollectionSize | When you bind a list view to an array, this property controls whether the list view displays the collection size as the first list item. Set to true to display the collection size, false to omit it. Default is true. See Also: UnityEditor.UIElements.BindingExtensions.Bind |
unbindItem | Callback for unbinding a data item from the visual element. |
AddToSelection | Adds an item to the collection of selected items. |
ClearSelection | Unselects any selected items. |
Refresh | Clear, recreate all visible visual elements, and rebind all items. This should be called whenever the items source changes. |
RemoveFromSelection | Removes an item from the collection of selected items. |
ScrollTo | Scroll to a specific visual element. |
ScrollToItem | Scroll to a specific item index and make it visible. |
SetSelection | Sets the currently selected item. |
SetSelectionWithoutNotify | Sets a collection of selected items without triggering a selection change callback. |
onItemChosen | Callback for when an item is chosen (double-click). This is different from just a selection. |
onItemsChosen | Callback triggered when the user 'acts on' a selection of one or more items, for example by double-clicking or pressing Enter. |
onSelectionChange | Callback triggered when the selection changes. |
onSelectionChanged | Callback triggered when the selection changes. |
disabledUssClassName | USS class name of local disabled elements. |
binding | Binding object that will be updated. |
bindingPath | Path of the target property to be bound. |
canGrabFocus | Return true if the element can be focused. |
delegatesFocus | Whether the element should delegate the focus to its children. |
focusable | True if the element can be focused. |
focusController | Return the focus controller for this element. |
tabIndex | An 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 |
customStyle | Returns the custom style properties accessor for this element. |
enabledInHierarchy | Returns true if the VisualElement is enabled in its own hierarchy. |
enabledSelf | Returns true if the VisualElement is enabled locally. |
experimental | Returns the UIElements experimental interfaces. |
generateVisualContent | Called when the VisualElement visual contents need to be (re)generated. |
hierarchy | Access to this element physical hierarchy |
pickingMode | Determines if this element can be pick during mouseEvents or IPanel.Pick queries. |
resolvedStyle | Returns the VisualElement resolved style values. |
schedule | Retrieves this VisualElement's IVisualElementScheduler |
style | Reference to the style object of this element. |
styleSheets | Returns a VisualElementStyleSheetSet that manipulates style sheets attached to this element. |
this[int] | Access to this element physical hierarchy |
tooltip | Text to display inside an information box after the user hovers the element for a small amount of time. |
usageHints | A combination of hint values that specify high-level intended usage patterns for the VisualElement. This property can only be set when the VisualElement is not yet part of a Panel. Once part of a Panel, this property becomes effectively read-only, and attempts to change it will throw an exception. The specification of proper UsageHints drives the system to make better decisions on how to process or accelerate certain operations based on the anticipated usage pattern. Note that those hints do not affect behavioral or visual results, but only affect the overall performance of the panel and the elements within. Generally it advised to always consider specifying the proper UsageHints, but keep in mind that some UsageHints may be internally ignored under certain conditions (e.g. due to hardware limitations on the target platform). |
userData | This property can be used to associate application-specific user data with this VisualElement. |
viewDataKey | Used for view data persistence (ie. tree expanded states, scroll position, zoom level). |
HandleEvent | Handle an event, most often by executing the callbacks associated with the event. |
HasBubbleUpHandlers | Return true if event handlers for the event propagation BubbleUp phase have been attached on this object. |
HasTrickleDownHandlers | Returns true if event handlers, for the event propagation TrickleDown phase, are attached to this object. |
RegisterCallback | Adds 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. |
SendEvent | Sends an event to the event handler. |
UnregisterCallback | Remove callback from the instance. |
Blur | Tell the element to release the focus. |
Focus | Attempt to give the focus to this element. |
Add | Add an element to this element's contentContainer |
BringToFront | Brings this element to the end of its parent children list. The element will be visually in front of any overlapping sibling elements. |
Children | Returns the elements from its contentContainer |
Clear | Remove all child elements from this element's contentContainer |
Contains | Returns true if the element is a direct child of this VisualElement |
ElementAt | Retrieves the child element at position |
EnableInClassList | Enables or disables the class with the given name. |
FindAncestorUserData | Searchs up the hierachy of this VisualElement and retrieves stored userData, if any is found. |
FindCommonAncestor | Finds the lowest commont ancestor between two VisualElements inside the VisualTree hierarchy |
GetClasses | Retrieve the classes for this element. |
GetFirstAncestorOfType | Walks up the hierarchy, starting from this element's parent, and returns the first VisualElement of this type |
GetFirstOfType | Walks up the hierarchy, starting from this element, and returns the first VisualElement of this type |
IndexOf | Retrieves the child index of the specified VisualElement. |
Insert | Insert an element into this element's contentContainer |
MarkDirtyRepaint | Triggers a repaint of the VisualElement on the next frame. |
PlaceBehind | Places 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. |
PlaceInFront | Places 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. |
Remove | Removes this child from the hierarchy |
RemoveAt | Remove the child element located at this position from this element's contentContainer |
RemoveFromHierarchy | Removes this element from its parent hierarchy |
SendEvent | Sends an event to the event handler. |
SendToBack | Sends this element to the beginning of its parent children list. The element will be visually behind any overlapping sibling elements. |
SetEnabled | Changes the VisualElement enabled state. A disabled VisualElement does not receive most events. |
Sort | Reorders child elements from this VisualElement contentContainer. |
ToggleInClassList | Toggles between adding and removing the given class name from the class list. |