複数の行を持つことができる (または持たない) ItemRenderers を使用して ComboBox を作成したいと考えています。画像は 1000 語を超えるので、次のようになります。
そして、これはそれに付随する非常に単純なコードです:
<s:ComboBox>
<s:layout>
<s:VerticalLayout gap="0" requestedMinRowCount="1" requestedMaxRowCount="6"
horizontalAlign="justify" variableRowHeight="true" />
</s:layout>
</s:ComboBox>
ここでの問題は、dataProvider が非常に大きく、一部のラベルが非常に長い場合に、ComboBox が完全に暴走することがあります。時々、ポップアップがちらつき、消えて二度と戻らないことがあります。ポップアップが表示されることがありますが、正しい場所 (TextInput のすぐ下) になく、表示される項目が多すぎます (私のコードを見ると、私が設定したことがわかりますrequestedMaxRowCount="6"
)。
これは、コンポーネントまたはレイアウト クラスのバグによく似ています。ただし、これは非常に珍しい使用例ではないと思うので、誰かがこの問題の実行可能な回避策を既に見つけていることを願っています.
ItemRenderer に固定幅を設定して使用することhorizontalAlign="contentJustify"
は、受け入れられるオプションではないことに注意してください。ソリューションは再利用可能である必要があり、アプリケーション内のすべての ComboBox ごとにカスタム ItemRenderer を作成したくありません。(また、写真で使用されているカスタム テーマは問題ではありません。デフォルトの Spark テーマでもテストしました)。