0

私の .mxml ファイルでは、2 つの横並びのラベルにデータベースからのテキスト データを入力しています。

このような:

    <s:Label x="10" y="37.5" width="100%" text="{data.city}"/>
    <s:Label x="86" y="36.75" width="100%" text="{data.state}"/>

場合によっては、非常に長いテキスト データを取得すると、2 つのラベルが重なり合ってまったく読めなくなることがあります。

x と y のセットがあるため、これが起こっていると思います。これをより動的にする方法はありますか?

ありがとう!

4

4 に答える 4

3

さまざまな Flex レイアウト コンテナーを調べることをお勧めします。

Hグループ

<s:HGroup>
    <s:Label text="{data.city}"/>
    <s:Label text="{data.state}"/>
</s:HGroup>

これにより、例から探しているように聞こえるレイアウトが提供されます。ただし、Flex が提供する他のいくつかのコンテナも参照することをお勧めします。

Flex フォームは、フォームの作成に役立つことが多い方法でデータを整列させます。特にユーザーが DB に永続的に入力を返すことを許可している場合は、UI についてこれを考慮する必要があります。

<s:Form>
    <s:FormItem label="City:">
        <s:Label text="{data.city}"/>
    </s:FormItem>
    <s:FormItem label="State:">
        <s:Label text="{data.state}"/>
    </s:FormItem>
</s:Form>
于 2012-04-16T19:20:08.067 に答える
1

ラベルを限られた幅で表示する必要がある場合は、ラベルの maxWidth プロパティを使用できます。これにより、ラベルにテキストが表示されます。テキストが長い場合は、一部のテキストが表示され、... 形式のままになります。

<s:Label text="{data.city}" maxWidth="150"/> 
于 2012-04-17T05:48:23.760 に答える
1

最初のラベル + スペース + x 最初のラベルの幅で 2 番目のラベルの X を設定してみてください。

したがって、最初のラベルの幅 + スペース + 最初のラベルの x

于 2012-04-16T19:10:25.927 に答える
1

あなたはいくつかのことをすることができます:

各ラベルの値を設定するために呼び出される関数がある場合は、その関数の内容に基づいてラベルを再配置します。

ラベルの値がデータにバインドされているため、データが更新されたときに必ずしも通知されない場合はupdateDisplayList()、UIComponent のメソッドをオーバーライドして、そこにラベルを再配置する必要があります。

UIComponent のライフサイクルを理解して使用することで、多くの効率を得ることができます (パフォーマンスが向上します)。「Flex コンポーネントのライフサイクル」をグーグルで検索すると、このテーマに関する有益な情報がたくさんあります。

幸運を!

于 2012-04-16T19:17:57.880 に答える