Version: 2022.1
言語: 日本語
UXML 要素 LongField
UXML 要素 MaskField

UXML 要素 ListView

ListView は、アイテムのリストにリンクして表示する、垂直方向にスクロール可能な領域です。 

ノート: 水平垂直方向の Scroller 要素は、UI Toolkit の標準的な Scroller です。

ListViewと ScrollView の比較

ScrollView コントロールを使用すると、ListView を使用するのと同じ機能を作成することができます。ただし、以下のような場合は、ListView の方が ScrollView よりも効率的です。

  • リストアイテムを入力する
  • アイテムの高さを管理する
  • オブジェクトへの紐づけとその解除
  • ページを埋めるために必要なビジュアル要素の数のインスタンス化する
  • ビジュアル要素をリサイクルし、メモリ処理を最適化する

アイテムの高さを設定

アイテムの高さを利用してコンテンツを駆動する方法を変更するには、VirtualizationMethod を使用します。

  • VirtualizationMethod.FixedHeight すべてのアイテムの高さを同じにします。
  • VirtualizationMethod.DynamicHeight アイテムに様々な高さを持たせることができます。

ListView の使い方を学ぶ最良の方法は、例を試してみることです。

  • 単純な ListView の例を見るには、Unity で Window > UI Toolkit > Samples > List View を選択します。
  • 複雑なリストビューを作成: 複雑なデータを持つ ListView を作成し、ListView をビジュアル要素に紐づけます。
  • ListView でリストに紐づけ: トグルのリストを作成し、そのリストを GameSwitch オブジェクトの基礎のリストに紐づけます。 

C# の基本クラスと名前空間

C# クラス: ListView
名前空間: UnityEngine.UIElements
基本クラス: BaseListView

Inherited attributes

この要素は基本クラスから以下の属性を継承します。

名前 説明
binding-path string バインドされるべきターゲットプロパティのパス。
fixed-item-height int The height of a single item in the list, in pixels.

This property must be set when using the virtualizationMethod is set to FixedHeight, for the collection view to function.
focusable boolean 要素がフォーカス可能である場合は true。
header-title string このプロパティは、showFoldoutHeader を使用する場合の折り込みヘッダーのテキストを制御します。
reorder-mode UIElements.ListViewReorderMode This property controls the drag and drop mode for the list view.

The default values if Simple. When this property is set to Animated, Unity adds drag handles in front of every item and the drag and drop manipulation will push items with an animation as the reordering happens. Multiple item reordering is only supported with the Simple drag mode.
reorderable boolean Gets or sets a value that indicates whether the user can drag list items to reorder them.

The default values is false. Set this value to true to allow the user to drag and drop the items in the list. The collection view provides a default controller to allow standard behavior. It also automatically handles reordering the items in the data source.
selection-type UIElements.SelectionType 選択タイプを制御します。

デフォルト値は SelectionType.Single です。コレクションビューで選択を無効に設定すると、現在の選択はすべて消去されます。
show-add-remove-footer boolean This property controls whether a footer will be added to the list view.

The default values if false. When this property is set to true, Unity adds a footer under the scroll view. This footer contains two buttons: A “+” button. When clicked, adds a single item at the end of the list view. A “-” button. When clicked, removes all selected items, or the last item if none are selected.
show-alternating-row-backgrounds UIElements.AlternatingRowBackground このプロパティは、コレクションビューの行の背景色を交互に表示するかどうかを制御します。AlternatingRowBackgroundenum から値を取ります。| |show-border|boolean|このプロパティを有効にすると、コレクションビューの周囲に境界線が表示されます。<br /> <br /> true に設定すると、コレクションビューが内部に使用する ScrollView の周囲に境界線が表示されます。| |show-bound-collection-size|boolean|This property controls whether the list view displays the collection size (number of items).<br /> <br /> The default values iftrue. When this property is set totrue, Unity displays the collection size as the first item in the list, but does not make it an actual list item that is part of the list index. If you query for list index 0, Unity returns the first real list item, and not the collection size. IfshowFoldoutHeaderis set totrue, the collection size field will be included in the header instead. This property is usually used to debug a ListView, because it indicates whether the data source is linked correctly. In production, the collection size is rarely displayed as a line item in a ListView.<br /> <br />SA:UnityEditor.UIElements.BindingExtensions.Bind| |show-foldout-header|boolean|This property controls whether the list view will display a header, in the form of a foldout that can be expanded or collapsed.<br /> <br /> The default values iffalse. When this property is set totrue, Unity adds a foldout in the hierarchy of the list view and moves the scroll view inside that newly created foldout. The text of this foldout can be changed withheaderTitleproperty on the ListView. IfshowBoundCollectionSizeis set totrue, the header will include a TextField to control the array size, instead of using the field as part of the list.| |tabindex|int|フォーカスリング内でフォーカス可能なものをソートするために使用される整数。0 以上であることが必要です。| |virtualization-method|[UIElements.CollectionVirtualizationMethod](../ScriptReference/UIElements.CollectionVirtualizationMethod.html)|The virtualization method to use for this collection when a scroll bar is visible. Takes a value from theCollectionVirtualizationMethodenum.<br /> <br /> The default values isFixedHeight\. When using fixed height, you need to specify thefixedItemHeightproperty. Fixed height is more performant but offers less flexibility on content. When usingDynamicHeight`, the collection will wait for the actual height to be computed. Dynamic height is more flexible but less performant.

この要素は、VisualElement から以下の属性も継承します。

名前 説明
content-container string child elements are added to this element, usually this
name string この VisualElement の名前。

このプロパティを使用して、特定の要素を対象とする USS セレクターを記述します。要素には一意の名前を付けるのが標準的です。
picking-mode UIElements.PickingMode mouseEvents または IPanel.Pick クエリの間にこの要素を選択 (ピック) できるかどうかを決定します。
style string この要素のスタイルオブジェクトへの参照。

C# でこのオブジェクトに書き込まれた USS ファイルまたはインラインスタイルから計算されたデータが含まれます。
toolbar string Text to display inside an information box after the user hovers the element for a small amount of time.
usage-hints UIElements.UsageHints VisualElement の高レベルの使用パターンを指定するヒント値の組み合わせ。このプロパティは、VisualElement がまだ Panel の一部でない場合にのみ設定できます。Panel の一部になると、このプロパティは事実上読み取り専用となり、変更しようとすると例外がスローされます。適切な UsageHints を指定することで、予想される使用パターンに基づいて、特定の操作をどのように処理するか、または高速化するかについて、システムがより適切な判断を下すようになります。これらのヒントは動作や視覚的な結果には影響しませんが、パネルとその中の要素の全体的なパフォーマンスにのみ影響することに注意してください。常に適切なUsageHints を指定することを考慮することをお勧めしますが、特定の条件下 (例えば、ターゲットプラットフォームのハードウェア制限など) では、いくつかの UsageHints が内部的に無視される可能性があることに留意してください。
view-data-key string ビューデータの永続性 (ツリーの展開状態、スクロール位置、ズームレベルなど) に使用されます。

これは、ビューデータストアからビューデータを保存/ロードするために使用されるキーです。このキーを設定しないと、この VisualElement の永続性が無効になります。

USS クラス

以下の表は、すべての C# パブリックプロパティ名と、それに関連する USS セレクターのリストです。

C# プロパティ USS セレクター 説明
ussClassName .unity-list-view Unity はこの USS クラスを ListView 要素のすべてのインスタンスに加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての ListView に影響します。
itemUssClassName .unity-list-view__item ListView 要素の item 要素の USS クラス名。

Unity はこの USS クラスを ListView が含む全ての item 要素に加えます。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての item 要素に影響します。
emptyLabelUssClassName .unity-list-view__empty-label ListView が空の時に表示されるラベルの USS クラス名。

Unity は、ListView が空の場合に表示されるラベルにこの USS クラスを加えます。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての空のラベルに影響します。
reorderableUssClassName .unity-list-view__reorderable 並べ替え可能なアニメーション化された ListView 要素の USS クラス名。

Unity はこの USS クラスを ListView 要素のすべてのインスタンスに加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての ListView に影響します。
reorderableItemUssClassName .unity-list-view__reorderable-item 並べ替え可能なアニメーション化された ListView の item 要素の USS クラス名。

reorderModeAnimated に設定されている場合、Unity はこの USS クラスを ListView のすべての要素に加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての要素に影響します。
reorderableItemContainerUssClassName .unity-list-view__reorderable-item__container 並べ替え可能なアニメーション化された ListView の iten コンテナの USS クラス名。

reorderModeAnimated に設定されている場合、Unity はこの USS クラスを ListView のすべての item コンテナに加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての item コンテナに影響します。
reorderableItemHandleUssClassName .unity-list-view__reorderable-handle 並べ替え可能なアニメーション化された ListView のドラッグハンドルの USS クラス名。

reorderModeAnimated に設定されている場合、Unity はこの USS クラスを ListView のドラッグハンドルに加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての要素に影響します。
reorderableItemHandleBarUssClassName .unity-list-view__reorderable-handle-bar 並べ替え可能なアニメーション化された ListView のドラッグハンドルバーの USS クラス名。

reorderModeAnimated に設定されている場合、Unity はこの USS クラスを ListView のドラッグハンドルバーに加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての要素に影響します。
footerUssClassName .unity-list-view__footer ListView のフッターの USS クラス名。

Unity はこの USS クラスを footer 要素に加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての ListView に影響します。
foldoutHeaderUssClassName .unity-list-view__foldout-header ListView のヘッダーの USS クラス名。

Unity はこの USS クラスを ListVIew の foldout 要素に加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての foldout に影響します。
arraySizeFieldUssClassName .unity-list-view__size-field foldout ヘッダーが有効な場合、ListView の size field の USS クラス名。

showFoldoutHeadertrue に設定されている場合、Unity はこの USS クラスを ListView の size field 要素に加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての size field に影響します。
listViewWithHeaderUssClassName .unity-list-view--with-header foldout ヘッダーが有効な場合、ListView のUSS クラス名。

showFoldoutHeadertrue に設定されている場合、Unity はこの USS クラスを ListView に加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての list に影響します。
listViewWithFooterUssClassName .unity-list-view--with-footer add/remove footer が有効な場合、ListView のUSS クラス名。

showAddRemoveFootertrue に設定されている場合、Unity はこの USS クラスを ListView に加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての list に影響します。
scrollViewWithFooterUssClassName .unity-list-view__scroll-view--with-footer The USS class name for scroll view when add/remove footer is enabled.

Unity adds this USS class to ListView’s scroll view when showAddRemoveFooter is set to true. Any styling applied to this class affects every list located beside, or below the stylesheet in the visual tree.
ussClassName .unity-collection-view BaseVerticalCollectionView 要素の USS クラス名。

Unity はこの USS クラスを BaseVerticalCollectionView 要素のすべてのインスタンスに加えます。このクラスに適用されたスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての BaseVerticalCollectionView に影響します。
borderUssClassName .unity-collection-view--with-border 境界を持つ BaseVerticalCollectionView 要素の USS クラス名。

インスタンスの BaseVerticalCollectionView.showBorder プロパティが true に設定されている場合、Unity はこの USS クラスを BaseVerticalCollectionView 要素のインスタンスに加えます。このクラスに適用されたスタイルは、ビジュアルツリー内のスタイルシートの横または下にあるすべての BaseVerticalCollectionView に影響します。
itemUssClassName .unity-collection-view__item BaseVerticalCollectionView 要素の item 要素の USS クラス名。

Unity はこの USS クラスを BaseVerticalCollectionView が含む全ての item 要素に加えます。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての item 要素に影響します。
dragHoverBarUssClassName .unity-collection-view__drag-hover-bar The USS class name of the drag hover bar.

Unity adds this USS class to the bar that appears when an item element is dragged. The BaseVerticalCollectionView.reorderable property must be true in order for items to be dragged. Any styling applied to this class affects every BaseVerticalCollectionView located beside, or below the stylesheet in the visual tree.
itemDragHoverUssClassName .unity-collection-view__item--drag-hover The USS class name applied to an item element on drag hover.

Unity adds this USS class to the list element that is dragged. The BaseVerticalCollectionView.reorderable property must be set to true for items to be draggable. Any styling applied to this class affects every BaseVerticalCollectionView item located beside, or below the stylesheet in the visual tree.
itemSelectedVariantUssClassName .unity-collection-view__item--selected BaseVerticalCollectionView で選択された item 要素の USS クラス名です。

Unity はこの USS クラスを BaseVerticalCollectionView の選択された要素に加えます。BaseVerticalCollectionView.selectionType プロパティは、0 個、1 個、またはそれ以上の要素を選択できるかを決定します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての BaseVerticalCollectionView アイテムに影響します。
itemAlternativeBackgroundUssClassName .unity-collection-view__item--alternative-background The USS class name for odd rows in the BaseVerticalCollectionView.

Unity adds this USS class to every odd-numbered item in the BaseVerticalCollectionView when the BaseVerticalCollectionView.showAlternatingRowBackground property is set to ContentOnly or All. When the showAlternatingRowBackground property is set to either of those values, odd-numbered items are displayed with a different background color than even-numbered items. This USS class is used to differentiate odd-numbered items from even-numbered items. When the showAlternatingRowBackground property is set to None, the USS class is not added, and any styling or behavior that relies on it’s invalidated.
listScrollViewUssClassName .unity-collection-view__scroll-view BaseVerticalCollectionView のスクロールビューの USS クラス名。

Unity はこの USS クラスを BaseVerticalCollectionView のスクロールビューに加えます。このクラスに適用されたスタイルは、ビジュアルツリー内のスタイルシートの横または下にあるすべての BaseVerticalCollectionView スクロールビューに影響します。
disabledUssClassName .unity-disabled ローカルで無効にされた要素の USS クラス名。

You can also use the Matching Selectors section in the Inspector or the UI Toolkit Debugger to see which USS selectors affect the components of the visual element at every level of its hierarchy.

その他の参考資料

UXML 要素 LongField
UXML 要素 MaskField