2011-01-09 6 views
1

Spark DropDownlistコンポーネントを使用しています。選択したアイテムが表示される親コンポーネントのサイズを小さくしたいのですが、ユーザーがアイテムを選択しようとすると、選択肢が表示されるボックスが表示されますそれがすべての要素を含むように大きくしてください。要素が大きければ親要素のサイズも大きくなり、ユーザーは水平スクロールする必要はありません。 さまざまな幅のitemrendererを使用しようとしましたが、選択肢の水平スクロールが行われました。親コンポーネント(つまりs:dropdownlist)の水平スクロールを無効にすると、表示される選択肢がカットオフになります。 。 可能な解決策をお教えください。Flexのドロップダウンリストのitemrendererの問題?

答えて

1

私はそれを自分で修正しました。

は基本的に私は、DropDownListコントロールのためcustomskinを作成し、カスタムリストに私はのpopupanchorコンポーネントのこのプロパティpopupWidthMatchesAnchorWidth = "偽」を指定した。その後、私は私が必要な幅でのitemRendererを作成し、それが働いた。

注:私はdropdownlistのカスタムスキンをsparkダウンリストの既存のスケーリングに基づいて作成し、このプロパティを変更しました。

0

私はそれが重要かどうかはわかりませんが、

<dropdown open="event.currentTarget.skin.popUp.popUpWidthMatchesAnchorWidth = false;"/> 

スキンを作成しないでください。作成完了時に呼び出すと、ポップアップはまだ作成されず、エラーが発生します。私は、ドロップダウンが更新されている場所に軽いフラッシュがあることに気付きました。しかし、これはデバッグビルドであり、リリースビルドでは目立たないほどです。

補足:コンテンツは動的に変更されているため、結局のところスキンを使用しています。ドロップダウンよりも小さくすることができます。だから私は、popUpWidthMatchesAnchorWidthがfalseに設定されているとき、ポップアップの幅がデフォルトで140になることに気づいた。これを修正するために、リストの幅にバインディングを追加したので、ポップアップは常にリストと同じくらい幅が広く、必要なときにはさらに広がります。これを行うには、minWidthプロパティをdrop downスキンのドロップダウンに次のように追加します。

<s:Group id="dropDown" maxHeight="184" minHeight="22" minWidth="{hostComponent.width}"> 
関連する問題