2

ランダムなサイズのアイテムの配列があります。リピーターコンポーネントのアイテムごとに1つのラベルを表示したいと思います。5列で必要な数の行を含むグリッドレイアウトで表示するようにします。Flex / JBossでそれを行うにはどうすればよいですか?

まだ見たことのない別の方法があるかもしれないので、どんな提案でもありがたいです。ありがとう!

4

2 に答える 2

2

リピーターの代わりにタイルリストを使用します。次に例を示します。

http://blog.flexexamples.com/2007/09/28/using-the-flex-tilelist-classs-new-datachangeeffect-style-in-flex-3/

于 2009-08-03T21:15:56.323 に答える
0

1か月遅すぎましたが、タイルリストでは提供できない特定の機能が必要な同じ状況にありました。 ここで私の質問を参照してください


つまり、私のリピーターグリッドの幅は900ピクセルです。各列の幅は300ピクセル、各行の高さは31ピクセルで、間に1ピクセルの空白があります。合計3列。

コード:

<mx:Repeater id="rptCities" dataProvider="{citiesArr}">
<mx:Canvas label="{rptCities.currentItem.city}" x="{rptCities.currentIndex%3 * 300}" y="{int(rptCities.currentIndex/3) * 32}" width="300" height="31">
<mx:Label text="{rptCities.currentItem.city}"/>
</mx:Canvas>
</mx:Repeater>

では、このコードをどのように読みますか?

市長の部分はリピーター内のキャンバスで処理されます。ご覧のとおり、各キャンバスの幅は300ピクセル(各列の幅)で、高さは31ピクセルです。モジュロで遊ぶことにより、要素のx位置を定義できます。

データプロバイダーに6つのアイテムがあるとしましょう。

x = "{rptCities.currentIndex%3 * 300}"

最初の項目:0%3 == x位置:0 * 300

2番目のアイテム:1%3 == x位置:1 * 300

3番目のアイテム:2%3 == x位置:2 * 300

4番目のアイテム:3%3 == x位置:0 * 300

これにより、要素のx位置が処理されます。間に1pxのスペースが必要なため、32を定数値として定義した要素のy位置。数値を整数に変換すると、丸められた値が得られます(イタリック体の値は数値であり、通常のフォントタイプはフレックスが考慮に入れる整数です)。

y = "{int(rptCities.currentIndex / 3)* 32}"

最初の項目:0/3 == y位置:0 * 32

2番目の項目:1/3 == y位置:0 * 32(0.33)

3番目の項目:2/3 == y位置:0 * 32(0.66)

4番目のアイテム:3/3 == y位置:1 * 32

リピーターが4番目の項目にある場合、2番目の「行」にあるx-およびy-position = x:0およびy:32


かなり大きな答えでごめんなさい。

于 2009-09-03T10:37:05.823 に答える