0

コンテンツが長くなりすぎた場合にスクロールバーを自動的に取得するVGRoupがあります。

スクロールバーをスキンしたい(幅を広くしたい)。どうやってやるの?

<s:Panel title="Replay" width="95%" height="860" top="920" horizontalCenter="0">
    <s:VGroup id="vgroup" left="10" right="10" top="10" bottom="10">
        <s:List id="list" height="100%" width="100%" itemRenderer="ListRenderer" />         
    </s:VGroup>
</s:Panel>
4

1 に答える 1

1

最初に、スクロールバーを取得するのは VGroup ではなく、List であることを知っておく必要があります。グループは、視覚要素をまったく持たないレイアウト コンポーネントです。(また、VGroupはあなたが示すコードでは冗長ですが、この質問の目的のために無関係なコードを削除した可能性があると思います。)

スキニングについては、Spark VScrollBarSkin の独自のバージョンを作成して行います。FlashBuilder を使用する場合は、プロジェクト (またはスキンを作成するパッケージ) を右クリックします。[新規] > [MXML スキン] をクリックします。ウィザードでspark.components.VScrollBar、ホスト コンポーネントとして入力し、 のコピーを作成しますspark.skins.spark.VScrollBarSkin

ここに画像の説明を入力

作成したばかりのクラスには、それぞれ独自のスキンを持つ 4 つのボタンが表示されます。1 つは「スクロール アップ」ボタン、もう 1 つは「スクロール ダウン」ボタン、3 番目はクリック可能なトラック (背景)、最後はドラッグ可能なサムです。

VScrollBarskin で行ったのと同じように、これらの各ボタンのカスタム スキンを作成できるようになりましたが、幅のみを調整する必要があるため、これは必要ない場合があります。これらの各ボタンに明示的な幅を設定するだけで十分な場合があります。

デフォルトのスキンの代わりにスキンを適用するには、これをスタイルシートに入れます。

@namespace s "library://ns.adobe.com/flex/spark";

s|VScrollBar {
    skinClass: ClassReference("my.skins.VScrollBarSkin")
}

または、たとえばリストのスクロールバーのみに適用する場合は、より具体的なセレクターを使用します。

s|List s|VScrollBar { ... }
于 2012-06-05T12:55:10.630 に答える