条件付きでTabNavigatorのタブを非表示にしたいと思います。表示設定が正しく動作しないようです(おそらく、TabNavigatorが現在選択されていないタブを非表示にするためです)。TabNavigatorのタブを非表示にする最適な方法は何ですか?
これは正しい方法はありますか?
条件付きでTabNavigatorのタブを非表示にしたいと思います。表示設定が正しく動作しないようです(おそらく、TabNavigatorが現在選択されていないタブを非表示にするためです)。TabNavigatorのタブを非表示にする最適な方法は何ですか?
これは正しい方法はありますか?
これは、ビジュアルタブを構成するボタンを返すTabNavigatorのgetTabAt()メソッドを使用することによって行うことができます。そのボタンのvisibleプロパティを設定することができます。バインディングを使ってこの設定を行うのはややこしいことですが、実行可能です。
代わりにタブを無効にすることもできます。これは、対応するTabNavigatorの子(表示されていない)で有効に設定することで実行できます。
hideとはどういう意味ですか?実際に削除を意味するのであれば、TabNavigatorのデータにバインドされている配列を取り出し、そこから該当する要素を削除してください。
一時的に削除する場合は、TabNavigatorをカプセル化し、削除されたタブの配列と実際のタブの配列を持つ独自のコンポーネントを作成します。それでは、これを適切に扱います。
「一時的に表示しない」という意味です。それをTabNavigatorから削除することは、過度の行為のようです。バインディングを使用する方法でこれを行うといいでしょう... –
flexlibプロジェクトをチェックしてみるとよいでしょう。彼らはSuperTabNavigatorと呼ばれるコンポーネントを持っています。これは、ベースのFlex TabNavigatorに、タブを隠すことを含む多くの機能を追加します(私は思う)。
独自のコンポーネントを作成する必要がある場合は、少し難解です。知るべきことは、「タブ」は実際には特別にスタイルされたボタンであり、TabBarコンポーネント内に含まれていることです(TabBarはTabNavigatorに含まれています)。それでは、TabNavigatorをサブクラス化し、TabBarボタンのvisibleプロパティとincludeInLayoutプロパティにバインドされたビュー(TabNavigatorに追加されたキャンバスなど)にいくつかのプロパティを設定します。本質的には
、何を持っているだろうことのようなものです:
BindingUtils.bindProperty(tabButton, "visible", view, "someProperty");
BindingUtils.bindProperty(tabButton, "includeInLayout", view, "someProperty");
私がTabNavigatorコンテナのことは知らないが、他の容器に入れて、あなたがfalse
にincludeInLayout
プロパティを設定することができ、それは無視されます。あなたはおそらくまだそれをvisible
と組み合わせる必要があります。
var secondTab = tabNavigator.removeChildAt(0);
これはうまくいく、ありがとう。また、ButtonにincludeInLayoutを設定する必要があります。私は通常のリスナーで実装するだけで、バインドでそれをやろうとする心配はありませんでした。 –
ありがとう、今日も同じ問題があった。 –