2012-03-15 10 views
2
  • コンテナの幅に基づいて、マルチ行のTabBarを持つことは可能ですか?
+1

私は正確にどのようにこれにするのかわかりませんが、TabBarを拡張するのは良い方法です。あなたはこれを見ました[リンク] http://blog.everythingflex.com/2009/08/27/multirowtabs-flex-component-redux/?たぶんあなたの助けになるでしょうが、完全なソースコードのリンクは壊れています。また、私はそれがあなたが通常のTabBarを好きではない場合は、[リンク] http://code.google.com/p/flexlib/wiki/ComponentListからのSuperTabBarはちょっといいですね、私が尋ねたものではない知っている:) – Sebastian

+4

私はHorizo​​ntalLayoutの代わりにカスタムTabBarSkinにTileLayoutを適用できると思います。この方法でTabBarを拡張する必要はありません – RIAstar

+1

私はTileLayoutを追加しましたが、いくつかの奇妙な隙間があり、タブの下に恒常的に残っています。 :| –

答えて

8

TabBarにTileLayoutを与えるのと同じくらい簡単です。 TabBarをサブクラス化する必要はなく、独自のスキンクラスを作成する必要はありません。ただ、この操作を行います。このような何かを生成します

<s:TabBar dataProvider="{dp}" left="0" right="0"> 
    <s:layout> 
     <s:TileLayout horizontalGap="-1" verticalGap="-1" 
         requestedRowCount="2" /> 
    </s:layout> 
</s:TabBar> 

:TileLayoutは、デフォルトでは、行の特定の番号を割り当てますので、

TabBar with TileLayout

あなたが見たTabBarの下にギャップが生じています。 requestedRowCountを期待する行数(この例では2)に設定することで、これを無効にすることができます。

あなたはそれが本当にダイナミックになりたい場合は、TileLayoutのcolumnWidthへのTabBarの総widthを比較することにより、行の必要数を計算し、requestedRowCountプロパティに結果の数をバインドすることができます。

+1

それは動作しますが、まだTabBarオブジェクトの後に発生した空白のギャップ。 :| \t \t \t \t \t \t \t \tこれは何とか助けている場合はです。 Flex 4.6。 –

+1

@ YordanYanakiev私はその問題の修正を加えて私の答えを更新しました。 – RIAstar

+2

height = "{(int(dataProvidersTabs.length /(width/90))+ 1)* 21}"これはもう一つの修正ですが、おそらくそれほど良い解決策があります。 –

関連する問題