What's the best way to hide a tab in a TabNavigator?

后端 未结 3 1350
时光取名叫无心
时光取名叫无心 2021-02-15 05:26

I\'d like to conditionally hide a tab in a TabNavigator. It seems that setting visible doesn\'t work properly (presumably because this is how the TabNavigator hides the tabs th

相关标签:
3条回答
  • 2021-02-15 05:57

    You might want to check out the flexlib project. They have a component called SuperTabNavigator that adds a lot of functionality to the base Flex TabNavigator, including hiding tabs (I think).

    If you do have to create your own component, though, it's a bit more tricky. The thing to know is that "tabs" are actually specially styled buttons, contained within a TabBar component (the TabBar is then contained within the TabNavigator). What you'll have to do then, is subclass TabNavigator and have some property on your views (i.e. the canvases, etc. that are added to the TabNavigator) that is bound to the visible and includeInLayout properties of the TabBar buttons.

    In essence, what you'll have is something like:

    BindingUtils.bindProperty( tabButton, "visible", view, "someProperty" );
    BindingUtils.bindProperty( tabButton, "includeInLayout", view, "someProperty" );
    
    0 讨论(0)
  • 2021-02-15 05:58

    You can do this by making use of TabNavigator's getTabAt() method which returns the Button that makes up the visual tab. You can then set that Button's visible property. It's a little tricky to get this setup with a bindings, but it's doable.

    You could also consider just disabling the tab instead, which you can do by setting enabled on the corresponding TabNavigator child (for which visible didn't work).

    0 讨论(0)
  • 2021-02-15 06:00

    What do you mean by hide? If you actually mean remove, then just take your array that's bound to the data in the TabNavigator, and remove the applicable element from it.

    If you want to just have them removed temporarily, create a component of your own that encapsulates the TabNavigator and has an array of removed tabs and an array of actual tabs. Then handle this as you see fit.

    0 讨论(0)
提交回复
热议问题