2010-11-30 11 views
1

Ich verfolge dieses Beispiel, um Bildlaufleisten in meiner Anwendung http://blog.flexexamples.com/2010/11/03/adding-scroll-bars-to-an-spark-application-container-in-flex-4/Flex 4 Anwendung Scrollbar

Der Unterschied ist tha in meiner Anwendungsdatei ich mit drei Ansichten, die eine ViewStack- habe zu haben. Das einzige, wenn die zweite Ansicht angezeigt wird, brauche ich meine Anwendung, um Bildlaufleisten anzuzeigen, aber es funktioniert nicht. Wenn ich meinem Viewstack eine feste Höhe gebe, erscheinen die Scrollbalken, aber ich möchte keine feste Breite angeben.

Vielen Dank im Voraus.

Antwort

2

Aus dem Flex 4 SDK doc (link text):

„Die Standardbreite und Höhe eines ViewStack- Containers ist die Breite und Höhe des ersten Kindes A ViewStack- Behältergröße nicht jedes Mal, wenn Sie das ändern ändern. . aktives Kind

können Sie die folgenden Techniken verwenden, um die Größe eines ViewStack- Behälters zu steuern, so dass sie alle Komponenten innerhalb seiner Kinder zeigen:

1. Set explicit width and height properties for all children to the same fixed values. 
2. Set percentage-based width and height properties for all children to the same fixed values. 
3. Set width and height properties for the ViewStack container to a fixed or percentage-based value. 

die Technik, die auf Sie verwenden basierend auf Ihrer ap Anwendung und den Inhalt Ihres ViewStack-Containers. "

Um dies zu umgehen, können Sie einen Scroller innerhalb Navigator Inhalte hinzufügen. Code kann in etwa so aussehen:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 
    <s:TabBar dataProvider="{myselfViewStack}"/> 
    <mx:ViewStack id="myselfViewStack" left="0" right="0" top="100" bottom="0"> 
     <s:NavigatorContent> 
      <s:Scroller width="100%" height="100%"> 
       <s:Group> 
        <!-- scrollbar not shown --> 
        <s:Group width="100%" height="100"> 
         <s:Label text="1"/> 
        </s:Group>  
       </s:Group> 
      </s:Scroller> 
     </s:NavigatorContent> 
     <s:NavigatorContent> 
      <s:Scroller width="100%" height="100%"> 
       <s:Group> 
        <!-- scrollbar shown --> 
        <!-- Explicit height set in group to "simulate" content --> 
        <s:Group width="100%" height="1500"> 
         <s:Label text="2"/> 
        </s:Group>  
       </s:Group> 
      </s:Scroller> 
     </s:NavigatorContent> 
     <s:NavigatorContent> 
      <s:Label text="3"/> 
     </s:NavigatorContent> 
    </mx:ViewStack> 
</s:Application> 
+0

Ich brauche die Bildlaufleisten mit anderen Ansichten zu arbeiten. Also muss ich Breite und Höhe einstellen ... Aber ich kenne die Gesamthöhe nicht ... – chchrist

+0

Ich habe die Antwort bearbeitet –

+0

Danke, die Gruppe innerhalb einer Gruppe hat mein Problem gelöst. –