カスタムアイテムレンダラーを作成することにより、デフォルトのアイテムレンダラーをオーバーライドできます。
コンポーネントをアイテムレンダラーとして使う場合、
カスタムアイテムレンダラーを作成することにより、デフォルトのアイテムレンダラーをオーバーライドできます。
コンポーネントをアイテムレンダラーとして使う場合、
このクラスは、アプリケーションで直接使用されることはありません。
リストクラスでは、スクロール位置の変化幅が表示されている行の数より少なかった場合にスクロールの最適化を試みます。 変更は行わず、移動だけが必要な行がある場合は、他の行が削除され、新しい行が追加されます。 スクロール位置の変化が大きすぎる場合は、古い行がすべて削除され、可視領域全体に対して
ListBase の場合、デフォルトのリストが単一列であり、水平方向にスクロールされることはないので、ListBase では実装されていません
値が
デフォルト値は 0(制限なし)です。
デフォルト値は 0(制限なし)です。
<mx:tagname Properties allowDragSelection="false|true" allowMultipleSelection="false|true" columnCount="4" columnWidth="NaN" dataProvider="null" dataTipField="label" dataTipFunction="null" dragEnabled="false|true" dragMoveEnabled="false|true" dropEnabled="false|true" iconField="null" iconFunction="null" itemRenderer="null" labelField="label" labelFunction="null" menuSelectionMode="false|true" offscreenExtraRowsOrColumns="0" rowCount="-1" rowHeight="NaN" selectable="true|false" selectedIndex="-1" selectedIndices="null" selectedItem="null" selectedItems="null" showDataTips="false|true" variableRowHeight="false|true" wordWrap="false|true" Styles alternatingItemColors="undefined" itemsChangeEffect="undefined" dropIndicatorSkin="ListDropIndicator" focusAlpha="0.5" focusRoundedCorners="tl tr bl br" paddingBottom="2" paddingLeft="2" paddingRight="0" paddingTop="2" rollOverColor="0xEEFEE6" selectionColor="0x7FCEFF" selectionDisabledColor="0xDDDDDD" selectionDuration="250" selectionEasingFunction="undefined" textRollOverColor="0x2B333C" textSelectedColor="0x2B333C" useRollOver="true|false" verticalAlign="top|middle|bottom" Events change="No default" dataChange="No default" itemClick="No default" itemDoubleClick="No default" itemRollOut="No default" itemRollOver="No default" />]]>
モデルとビューのアーキテクチャでは、ListBase から派生したクラスはビューを表し、dataProvider オブジェクトはモデルを表します。
コンポーネントをアイテムレンダラーとして使う場合、
このメソッドは、ドラッグ & ドロップによるコピー作成で使用されます。
アクションが
DataGrid コントロールの場合、デフォルトではこのメソッドによってコントロール内の最初の列が検索されます。 これ以外の列を検索するには、コントロールの設定に使用されているコレクションの
ListBase またはその子のサブクラスを作成する開発者が使用します。 アプリケーション開発者が使用することはありません。
例えば、次のデータプロバイダーは無効です。これは、値 "foo" が 2 回出現しており、ストリングの UID がストリング自体であるためです。
var sampleDP:Array = ["foo", "bar", "foo"]
単純な動的オブジェクトの場合、2 つの別々のインスタンスであれば 2 回出現してかまいません。次の例は、それぞれのインスタンスが異なるオブジェクトであり、異なる UID が与えられているので有効です。
var sampleDP:Array = [{label: "foo"}, {label: "foo"}]
次の例は、同じインスタンスが 2 回出現しているので無効です。
var foo:Object = {label: "foo"}; sampleDP:Array = [foo, foo];
このメソッドは ListBase クラスでは実装されないため、子クラスで実装する必要があります。
負の
このメソッドは ListBase クラスでは実装されないため、子クラスで実装する必要があります。
負の
リストクラスでも、
ListBase の場合、デフォルトのリストが単一列であり、水平方向にスクロールされることはないので、ListBase では実装されていません。
リストクラスでは、スクロール位置の変化幅が表示されている行の数より少なかった場合にスクロールの最適化を試みます。 変更は行わず、移動だけが必要な行がある場合は、他の行が削除され、新しい行が追加されます。 スクロール位置の変化が大きすぎる場合は、古い行がすべて削除され、可視領域全体に対して
ListBase の場合、デフォルトのリストが単一列であり、水平方向にスクロールされることはないので、ListBase では実装されていません
リストクラスでは、スクロール位置の変化幅が表示されている行の数より少なかった場合にスクロールの最適化を試みます。 変更は行わず、移動だけが必要な行がある場合は、他の行が削除され、新しい行が追加されます。 スクロール位置の変化が大きすぎる場合は、古い行がすべて削除され、可視領域全体に対して
キーボードを使用してアイテムを選択する場合、修飾キーを使用せずに矢印キーを使用すると、以前の選択がクリアされ、新しいアイテムが選択されてアンカーおよびキャレットになり、キャレットのインジケーターが選択ハイライトの周囲に表示されます。ユーザーが Shift キーと共に矢印キーを使用した場合、以前の選択がクリアされ、アンカーと新しいアイテムの間にあるアイテムが選択されます。 キャレットは新しいアイテムに移動します。Ctrl キーを使用した状態で矢印キーが使用された場合は、キャレットが移動するだけです。ユーザーは、スペースキーを使用してキャレットの位置にあるアイテムの選択を切り替えることができます。
変換の結果、
dataTipFunction は、次の例に示すように、データプロバイダー内のアイテムである引数を 1 つ受け取り、String を返します。
myDataTipFunction(item:Object):String
リストクラスでは、
このプロパティはデータプロバイダーを使用しますが、データプロバイダーの設定は行いません。 どのような場合でも、何らかの方法でデータプロバイダーを設定する必要があります。
MXML でこのプロパティを設定することはありません。
このプロパティを
レンダラーは、iconField として指定された名前のプロパティをデータプロバイダーオブジェクトで探します。 このプロパティの値が Class の場合、そのクラスをインスタンス化し、IFlexDisplayObject のインスタンスと想定します。 このプロパティの値が String の場合は、その名前を持つ Class がアプリケーションに存在するかどうかを確認します。該当する Class が見つからない場合には、その名前を持つプロパティをドキュメントで検索し、該当のプロパティが Class にマッピングされていると想定します。
iconFunction は、次に例に示すように、データプロバイダー内のアイテムである引数を 1 つ受け取り、Class を返します。
iconFunction(item:Object):Class
デフォルトのアイテムレンダラーは、コンポーネントクラスによって異なります。 TileList クラスと HorizontalList クラスでは TileListItemRenderer を使用し、List クラスでは ListItemRenderer を使用します。 DataGrid クラスでは、DataGridColumn の DataGridItemRenderer を使用します。
このような場合に、適切なフィールドを検索して表示可能なストリングを返す
ほとんどのコンポーネントでは、ラベル関数はデータプロバイダー内のアイテムである引数を 1 つ受け取り、String を返します。
myLabelFunction(item:Object):String
DataGrid クラスおよび DataGridColumn クラスのメソッドシグネチャは次のとおりです。
myLabelFunction(item:Object, column:DataGridColumn):String
ここで、
MXML および ActionScript でこのプロパティを設定することはありません。このコンポーネントがドロップインアイテムレンダラーまたはドロップインアイテムエディターとして使用されるときに、Flex でプロパティが設定されます。
デフォルトのアイテムレンダラーは、コンポーネントクラスによって異なります。 TileList クラスと HorizontalList クラスでは TileListItemRenderer を使用し、List クラスでは ListItemRenderer を使用します。 DataGrid クラスでは、DataGridColumn の DataGridItemRenderer を使用します。
行と列のどちらを作成するかは、コントロールとそのプロパティによって決まります。 通常は行が使用されます。ただし、
主に List コントロールまたは TileList コントロールにデータエフェクトを適用するときは、このプロパティをゼロ以外の値に設定します。 現在表示されているアイテムに対応するデータプロバイダーエレメントに影響する変更、または表示されているアイテムの前または後にある指定された数のアイテムのデータプロバイダーエレメントに影響する変更によって、データエフェクトがトリガーされます。 この範囲外のデータプロバイダーエレメントは、データエフェクトによって完全にはアニメーション化されない場合があります。
このプロパティが役立つのは、リストベースのコントロールの "before" レイアウトをまず決定してから "after" レイアウトを決定し、最後に before レイアウトから after レイアウトにアニメーションを作成するようにエフェクトのプロパティを設定することでデータエフェクトが動作するためです。 多数のエフェクトによって、現在非表示のアイテムが表示されるようになったり、現在表示されているアイテムが非表示になったりします。そのため、データエフェクトの再生時にアイテムレンダラーが既に存在するように、このプロパティでは、画面外のアイテムレンダラーを作成するようコントロールを設定します。
このプロパティの妥当な値は、画面上に表示される行の数と考えられます。 このプロパティを非常に大きな値に設定すると、多数のエレメントを含むデータプロバイダーで使用するときに、パフォーマンスの問題が発生することがあります。
DataGrid コントロールの場合、
デフォルト値は -1 です(アイテムは選択されていません)。
比較関数は 2 つの引数を受け取ります。最初の引数は、データプロバイダー内のオブジェクトです。2 番目の引数は、
myCompareFunction(itemInDataProvider:Object, itemInSelectedItems):Boolean
デフォルト値は
メモ: 多くの場合、
このクラスのプロパティは書き込み可能ですが、読み取り専用と見なす必要があります。 これらは List クラスによって初期化され、アイテムレンダラーまたはアイテムエディターによって読み取られます。 これらの値を変更すると、予期しない結果が生じる可能性があります。
例えば、データプロバイダーアイテムに "hiredDate" プロパティが含まれている場合、