Adobe Flex 4.5を使用してタブレット用の画像ビューアアプリケーションをコーディングしています。基本的には、リスト内のイメージをレンダリングするカスタムアイテムレンダラーのリストがあります。私は、画像サイズをポートレート(600x1024)のタブレットデバイスの幅/高さに設定しました。この方法では、一度に1つの画像しか見ることができません。問題は、デバイスがランドスケープに向かうときに、このデザインが明らかにネジ止めされることです。私の質問は、一度に1つの画像だけが表示されるように向きが変わったときに、画像の幅/高さを自動的に変更する方法です。それとも、これに接近するより良い方法がありますか?Flexの画像リスト上の1つの画像を、縦向きと横向きの両方で一貫して表示します。
これが私のリストです:
<s:List width="600" height="1024"
id="imageList" dataProvider="{data}" itemRenderer="{inlineRenderer}" click="imageList_clickHandler(event)"
verticalScrollPolicy="off" useVirtualLayout="true">
<s:layout>
<s:HorizontalLayout columnWidth="600"/>
</s:layout>
</s:List>
これは、アイテムレンダラーです:ここで
<s:Scroller width="600" height="1024">
<s:Group>
<s:Image source="{data.imageurl}" width="600" height="1024"
contentLoader="{FlexGlobals.topLevelApplication.imageCache}"/>
</s:Group> </s:Scroller>
ここでは間違っています。レンダラーにスクロールバーが必要なのはなぜですか?レンダラー(およびリスト)の明示的な高さと幅を指定するのはなぜですか?これはほとんどの場合、クロスデバイスではありません。モバイル機器向けのMXMLレンダラーの使用は推奨されません。レンダラでのバインドはパフォーマンスにとっては恐ろしいものです。これはモバイルデバイス上で重要です。一度に1つのアイテムだけを表示する予定の場合は、なぜリストを使用していますか? 1つの画像を使用し、ユーザーがリストをスクロールするときにソースを変更するだけです。 – JeffryHouser
あなたの質問に関しては、画像のアスペクト比を維持し、向きが変わったときに高さと幅の値を変更するだけでよいでしょう。 – JeffryHouser
@ www.Flextras.com画像を拡大してスクロールできるようにズームジェスチャーを使用したいので、私はスクロールを使用しています。複雑なリストではなく、イメージだけに変更します。ドキュメントでは、リストには表示されていない他のコンポーネントは表示されないため、パフォーマンスに関する問題はないと思っています。私はハードコーディングの幅/高さが悪い設計を知っている、私はパーセントを使用している必要があります。また、レンダラーの代わりに何をお勧めしますか?バインディングを避ける方法を教えてください。 – peacey