2014-10-02 6 views
0

Возможно ли, чтобы ButtonBar отображал только часть содержимого навигатора в стеке просмотра. Например, я хочу, чтобы на панели кнопок отображалась кнопка для первых двух, а не третья?Может ли панель кнопок показывать только определенное содержимое Viewstack?

<s:ButtonBar dataProvider="{mainViewStack}"/> 
<mx:ViewStack id="mainViewStack"> 
<s:NavigatorContent> 
</s:NavigatorContent> 
<s:NavigatorContent> 
</s:NavigatorContent> 
<s:NavigatorContent> 
</s:NavigatorContent> 
</mx:ViewStack> 

ответ

0

У меня была схожая проблема и не нашли родного решения. Поэтому я написал следующий «взломать». Написал собственный класс, который расширяет NavitagorContent.

ExtNavigatorContent.as

public class ExtNavigationContent extends NavigatorContent 
{ 
    public function ExtNavigationContent() 
    { 
     super(); 
    } 

    private var _includeInBar:Boolean = true; 

    public function get includeInBar():Boolean 
    { 
     return _includeInBar; 
    } 

    public function set includeInBar(value:Boolean):void 
    { 
     _includeInBar = value; 
     dispatchEvent(new Event("labelChanged")); 
    } 
} 

Я создал новый скин для TabBar (в вашем случае это будет ButtonBar). Затем добавьте следующий в стандартной кожи (вместо используемого по умолчанию ButtonBarButton создания):

<s:ButtonBarButton includeInLayout="{data.includeInBar}" visible="{data.includeInBar}" buttonMode="true"/> 

И, наконец, объявил TabBar/ButtonBar:

<s:TabBar id="menu" dataProvider="{viewstack1}" skinClass="design.skins.tabbar.SimpleTabBarSkin"/> 
<mx:ViewStack id="viewstack1" width="100%" height="100%"> 
    <components:ExtNavigationContent includeInBar="false" /> 
    <components:ExtNavigationContent includeInBar="true" /> 
    <components:ExtNavigationContent /> 
</mx:ViewStack> 
+0

Спасибо за ответ, я попытаюсь это и дайте вам отзывы, если они будут работать для меня. :) Пожелать было более простое решение, хотя, хорошо. – Omgabee

+0

Я не мог заставить это работать ... Я просто попробую другой подход к тому, чего я пытаюсь достичь. – Omgabee

+0

Извините, я привел неверный пример. Я обновлю ответ. Если у вас возникнут проблемы с моим решением, напишите мне, и я постараюсь помочь. – Crabar