リピーターを使用している mxml パネルがあります。パネルは水平方向にサイズ変更できます。繰り返しコンポーネントをパネルと一緒にサイズ変更したいと思います。物事がどのように見えるかの簡単な例を次に示します。
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" ...>
<!-- scripts and some controls -->
<mx:VBox width="100%">
<core:Repeater width="100%" dataProvider="model">
<ns1:MyItemRenderer width="100%" />
</core:Repeater>
</mx:VBox>
</mx:TitleWindow>
コンポーネントのサイズを変更しても、繰り返される項目の幅は変わりません。
モデルに項目を追加および削除するボタンとイベント ハンドラーもあります。これが完了すると、リピーターが更新されて正しい数のアイテムが表示され、すべてのアイテムのサイズが正しく変更されます。
ルート パネルのサイズが変更されたときに、項目のサイズを変更できませんでした。リピーターの周りの VBOx がサイズ変更イベントを取得していることがわかります。ただし、繰り返されるアイテムはイベントを取得していません。VBox に接続したサイズ変更ハンドラーから手動で繰り返しアイテムにサイズ変更イベントをディスパッチしようとしましたが、それは役に立ちませんでした。
また、dataProvider である ArrayCollection にダミー項目を追加および削除しようとしました (上記のように正しいサイズ変更をトリガーするため)。全て。
リピーターのアイテムを囲んでいるコンテナーでサイズ変更する方法はありますか?
私が使用している ItemRenderer は、mx:List で使用すると正しくサイズ変更されます。これは、List コンテナによって設定された data プロパティと getRepeaterItem() の両方を Repeater で使用する場合に機能するように構築されています。この特定のケースでは、この特定のケースではうまくいかない rowCount、height、および maxHeight プロパティを介してその高さを制御する方法に関して、List をコンテナーとして使用することはできません (私はあなたを惜しまない詳細)。