2009-05-06 8 views

答えて

21

これは、ビジュアルタブを構成するボタンを返すTabNavigatorのgetTabAt()メソッドを使用することによって行うことができます。そのボタンのvisibleプロパティを設定することができます。バインディングを使ってこの設定を行うのはややこしいことですが、実行可能です。

代わりにタブを無効にすることもできます。これは、対応するTabNavigatorの子(表示されていない)で有効に設定することで実行できます。

+2

これはうまくいく、ありがとう。また、ButtonにincludeInLayoutを設定する必要があります。私は通常のリスナーで実装するだけで、バインドでそれをやろうとする心配はありませんでした。 –

+0

ありがとう、今日も同じ問題があった。 –

1

hideとはどういう意味ですか?実際に削除を意味するのであれば、TabNavigatorのデータにバインドされている配列を取り出し、そこから該当する要素を削除してください。

一時的に削除する場合は、TabNavigatorをカプセル化し、削除されたタブの配列と実際のタブの配列を持つ独自のコンポーネントを作成します。それでは、これを適切に扱います。

+1

「一時的に表示しない」という意味です。それをTabNavigatorから削除することは、過度の行為のようです。バインディングを使用する方法でこれを行うといいでしょう... –

1

flexlibプロジェクトをチェックしてみるとよいでしょう。彼らはSuperTabNavigatorと呼ばれるコンポーネントを持っています。これは、ベースのFlex TabNavigatorに、タブを隠すことを含む多くの機能を追加します(私は思う)。

独自のコンポーネントを作成する必要がある場合は、少し難解です。知るべきことは、「タブ」は実際には特別にスタイルされたボタンであり、TabBarコンポーネント内に含まれていることです(TabBarはTabNavigatorに含まれています)。それでは、TabNavigatorをサブクラス化し、TabBarボタンのvisibleプロパティとincludeInLayoutプロパティにバインドされたビュー(TabNavigatorに追加されたキャンバスなど)にいくつかのプロパティを設定します。本質的には

、何を持っているだろうことのようなものです:

BindingUtils.bindProperty(tabButton, "visible", view, "someProperty"); 
BindingUtils.bindProperty(tabButton, "includeInLayout", view, "someProperty"); 
0

私がTabNavigatorコンテナのことは知らないが、他の容器に入れて、あなたがfalseincludeInLayoutプロパティを設定することができ、それは無視されます。あなたはおそらくまだそれをvisibleと組み合わせる必要があります。

0
var secondTab = tabNavigator.removeChildAt(0); 
関連する問題