メインコンテンツまでスキップ

ListView

ListViewウィジェットは、複数の項目を1つの軸(デフォルトは縦)に並べてスクロールできるリストです。
データの件数だけ項目を繰り返して描画し、リスト・フィード・検索結果のように項目が連続する画面で使用します。

定義・役割

ListViewウィジェットは、子項目を指定した軸に沿って順番に配置し、画面に収まらない部分もスクロールで続けて見られるようにします。繰り返す項目の件数はバインドしたデータに合わせて増減し、項目の間隔・内側の余白・スクロール方向・スクロールの物理効果などを設定できます。スクロールが終端に達したときのイベントを受け取って次のデータを読み込む無限スクロールにも使えます。

  • カテゴリー:Layouts
  • デフォルトのスクロール方向:vertical
  • デフォルトの項目数:0

機能

機能説明
項目の繰り返し描画バインドしたデータの件数(itemCount)だけ子項目を繰り返して描画します。
スクロール方向縦(vertical)または横(horizontal)に項目を並べてスクロールします。
項目の間隔spacingの値で項目の間に一定の間隔を空けます。
スクロール終端の検知スクロールがリストの終端に達するとonScrollEndイベントが発火し、追加読み込み(無限スクロール)に活用できます。
オーバーフローのクリップoverflowModeclipにすると、決められた領域に合わせて項目を切り取り、切り取られた件数を報告します。
登場アニメーションanimation設定で、項目が順番に現れる(staggered)登場効果を付けられます。

使い方

  1. 左のウィジェットパレットでLayoutsカテゴリーを開きます。
  2. ListView項目をキャンバスにドラッグ&ドロップします。
  3. リストの中に繰り返して表示する子項目(ウィジェット)を配置します。
  4. 右のPropertiesパネルでitemCountをデータにバインドするか、件数を指定します。
  5. 必要に応じてスクロール方向(scrollDirection)・項目の間隔(spacing)・余白(padding)などを調整します。

プロパティ

プロパティ説明デフォルト値値 / タイプ
scrollDirection項目を並べてスクロールする方向verticalhorizontal, vertical
reverse項目の順序を反転して表示オフ(falsetrue / false
shrinkWrap内容のサイズに合わせてリストのサイズを縮めるオン(truetrue / false
spacing項目の間隔未設定数値
paddingリストの内側の余白未設定余白
controllerスクロールを制御するコントローラー未設定スクロールコントローラー
primary画面のプライマリスクロールビューとして使うかどうか未設定true / false
physicsスクロールの物理効果未設定bouncing, clamping, alwaysScrollable, rangeMaintaining, neverScrollable, page
itemExtent各項目の固定サイズ(主軸方向)未設定数値
addAutomaticKeepAlives画面外の項目の状態を自動的に保持オン(truetrue / false
addRepaintBoundaries項目ごとに再描画境界を追加オン(truetrue / false
addSemanticIndexes項目にアクセシビリティインデックスを自動付与オン(truetrue / false
cacheExtent画面外に先に構築しておく領域のサイズ未設定数値
semanticChildCountアクセシビリティに通知する項目数未設定整数
itemCount繰り返して描画する項目数(データバインディング対応)0整数
dragStartBehaviorドラッグスクロールが開始される基準startstart, down
keyboardDismissBehaviorスクロール時にキーボードを閉じる方法manualmanual, onDrag
restorationIdスクロール位置の復元に使う識別子未設定文字列
clipBehavior領域を超える内容のクリップ方法hardEdgenone, hardEdge, antiAlias, antiAliasWithSaveLayer
animation項目の登場(staggered)アニメーション設定未設定アニメーション設定
overflowMode領域を超える項目の処理方法nonenone, clip
reservedTrailingExtentclipモードで利用可能な幅からさらに空けておく幅未設定数値

注意・ヒント

ヒント

onScrollEndはスクロールがリストの終端に達したときに一度発火し、終端から離れると再び発火できる状態に戻ります。次のページを読み込む無限スクロールに活用してください。

警告

scrollToIndexgetFirstVisibleIndexは、itemExtent(項目の固定サイズ)が設定されていないと動作しません。値がない場合、インデックスへのスクロール移動は何も起こらず、最初の項目のインデックスは0を返します。

さらに詳しく

ヒント

このウィジェットをスクリプトで制御するWidget Control(Property・Method・Event)の全体は、ListView Widget Controlドキュメントで確認してください。