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

GridView

GridViewウィジェットは、項目を格子(グリッド)状に配置して表示するスクロール可能なリストウィジェットです。
同じサイズのセルを複数の列に繰り返し配置するときに使います。

定義・役割

GridViewウィジェットは、1つの項目テンプレートを繰り返して格子状に描画するイテレーター(iterator)ウィジェットです。セルは均一なサイズで配置され、1行に入れるセル数、またはセル1つの最大サイズを基準に列数を決められます。スクロール方向・間隔・セル比率なども設定できます。

  • カテゴリー: Layouts
  • ドロップ時のサイズ: 親レイアウト(Row・Column・Stackなど)の中に入れるとデフォルトで300 x 200、親なしで最上位に配置するとキャンバスを埋めるように大きく表示されます。

機能

機能説明
格子配置項目を複数の列の格子状に配置します。列数の決定方法はcrossAxisTypeで選びます。
列数・セルサイズcrossAxisTypecountなら1行のセル数(crossAxisCount)、extentならセルの最大サイズ(maxCrossAxisExtent)で列数が決まります。
間隔・比率主軸・交差軸のセル間隔(mainAxisSpacingcrossAxisSpacing)とセルの縦横比(childAspectRatio)を調整します。
スクロールスクロール方向(scrollDirection)・逆方向(reverse)・物理効果(physics)などを設定します。
スクリプト制御項目の追加・削除、特定の項目へのスクロール、選択イベントの処理などをスクリプトで扱えます。

使い方

  1. 左のウィジェットパレットでLayoutsカテゴリーを開きます。
  2. GridView項目をキャンバスにドラッグ&ドロップします。
  3. 右のPropertiesパネルでcrossAxisTypeを選び、countならcrossAxisCount(1行のセル数)、extentならmaxCrossAxisExtent(セルの最大サイズ)を設定します。
  4. childAspectRatiomainAxisSpacingcrossAxisSpacingでセルの比率と間隔を調整します。
  5. 繰り返して表示する項目テンプレートをGridViewの中に配置します。

プロパティ

プロパティ説明デフォルト値値・タイプ
crossAxisType列数の決定方法(セル数基準/セルの最大サイズ基準)countcount, extent
crossAxisCount1行に配置するセル数(crossAxisTypecountのときに使用)2数値(整数、最小1)
maxCrossAxisExtentセル1つの最大交差軸サイズ(crossAxisTypeextentのときに使用)100数値
scrollDirectionスクロール方向verticalhorizontal, vertical
reverseスクロール方向を反転するかfalse真/偽
controllerスクロールコントローラー未設定スクロールコントローラー
primary既定のスクロールビューを使用するか未設定真/偽
physicsスクロールの物理効果未設定bouncing, clamping, alwaysScrollable, rangeMaintaining, neverScrollable, page
shrinkWrapコンテンツのサイズに合わせて縮小するかtrue真/偽
padding内側の余白未設定余白の値
mainAxisSpacing主軸(スクロール方向)のセル間隔0数値(最小0)
crossAxisSpacing交差軸のセル間隔0数値(最小0)
childAspectRatioセルの縦横比2数値(最小0.1)
addAutomaticKeepAlives画面外に出た項目の状態を維持するかtrue真/偽
addRepaintBoundariesリペイント境界を追加するかtrue真/偽
addSemanticIndexesセマンティックインデックスを追加するかtrue真/偽
cacheExtent先に描画しておくキャッシュ領域のサイズ未設定数値
semanticChildCountセマンティックな子の数未設定数値(整数)
dragStartBehaviorドラッグ開始の判定動作startdown, start
keyboardDismissBehaviorスクロール時にキーボードを閉じる動作manualmanual, onDrag
restorationIdスクロール位置を復元するためのID未設定文字列
clipBehavior領域外のクリップ処理方式hardEdgenone, hardEdge, antiAlias, antiAliasWithSaveLayer
itemCount繰り返して描画する項目数0数値(整数)

注意・ヒント

ヒント

crossAxisTypecountにするとcrossAxisCountが、extentにするとmaxCrossAxisExtentが列数の決定に使われます。編集画面でcrossAxisTypeを変更すると、使われない側のプロパティは自動的に非表示になります。

警告

controllerを指定しながらprimaryを真にすると、両方を同時に使えないためエラーとして扱われます。どちらか一方だけを使ってください。

さらに詳しく

ヒント

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