2009-07-23 10 views
0

私は、カスタムitemrendererを使用して写真のリストを表示しています。幅を制御する方法を知る必要があります。Flexのカスタムリストitemrendererの幅の幅

Why so wide? http://tdwright.co.uk/phpplayground/test_tom/img/flex_problem1.png

私はあなたが同意するだろうと確信しているように、目をbleedingly醜いされており、:現時点では、これを行います。

リストは、次のように作成されます。

<mx:Panel width="100%" height="100%" layout="absolute" title="Photos"> 
    <mx:List x="0" y="0" width="100%" height="100%" id="photoList" dataProvider="{photos}" itemRenderer="thumbnails" rowHeight="100"/> 
</mx:Panel> 

とするitemRendererコンポーネントは次のようになります。私は場所の全体の束に幅=「100%」を置いてみた

<?xml version="1.0" encoding="utf-8"?> 
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Image source="{data.src}" id="image" scaleContent="true" toolTip="{data.caption}" height="100%" horizontalAlign="center"/> 
</mx:VBox> 

成功はしない。誰がどのように私がこれを制御できるか知っていれば、私はとても感謝しています。

+0

この質問は2k回を超えていますが、まだ2年以上経過していますが、答えはまだありません。それは無関係になったのですか? (私はFlexを使用して諦めました)私はそれに恩恵を提供すべきですか? –

答えて

1

あなたはバーが

姿を消しているのitemRenderer verticalScrollPolicyは=「オフ」horizo​​ntalScrollPolicy =「オフ」の内部でこれらのプロパティを設定した場合、彼らがひどいために選択した理由を私は知らない代わりに偽

+0

これはバーを非表示にしますが、幅を制限するものではありません。あなたの答えをありがとう。 –

+0

どのくらい幅を制限したいですか? コンテンツを表示するのに必要な空き容量が分かっている場合は、itemrenderer内にmaxWidthを設定できます。親(tileListなど)の幅を取得して幅として設定することもできます。この問題の解決策はたくさんあります。 – Arno

+0

maxWidthはうまくいかないようですが、私は他の提案に基づいて答えを見たいと思っています。あなたのVBoxにあるitemrendererの –

0
の「オフ」

似たような痛みを伴う経験のミリアンペアに基づいて、ここにいくつかの観察があります。 (注意:私はこの特定のケースではすべてを確認するためのテストアプリケーションを構築していません)

あなたが望むのは、リストに含まれるitemRenderer要素のサイズ幅情報を提供する必要があります。スクロールバーが許可された状態でVBoxを使用すると、VBoxはコンテンツのサイズ(Image)と親のサイズの間で「調整」を試みます。そう、はい、最初に行うことは、VBoxのスクロールバーをオフにすることです.VBoxを完全に取り除くことはできないと仮定します。 (私はVBoxを使って次のステップとしてタイトルや何かをイメージの下に置くことができると思っています)

指定したリストは、親のの100%これはそれ自体がその親の100%にサイズ設定されています。これらの要素のサイズを「上から下」にするのではなく、幅を指定しないようにして、Flexが必要な幅をボトムアップで計算するようにしてください。 ListまたはPanelでmaxWidthを使用すると、ピアに関連してレイアウトする必要がある場合は、サイズが制限されます。

もう1つの重要なことは、「minHeight = 0」のトリックです。 MinHeightまたはminWidthがデフォルトのNaN以外の値に設定されている場合、Flexで使用されるサイジングアルゴリズムは全く異なる動作をします。これを0に設定すると、これらのケースの多くで非常に便利です。 VBoxおよび/またはリストでminWidth = 0を試してください。

0

スクロールポリシーをオフにすることに加えて、左右に0を設定します。これにより、幅を親の幅に固定する必要があります。

関連する問題