Flex 4 - s: прокрутка - PullRequest
       1

Flex 4 - s: прокрутка

0 голосов
/ 23 ноября 2010

Я создал проект, который включает mx: ViewStack в качестве первого контейнера.

<?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:comp="mycomp.*"
           xmlns:mx="library://ns.adobe.com/flex/mx"
           height="100%" width="100%"
           minHeight="600"  minWidth="800">
<s:layout>
    <s:VerticalLayout horizontalAlign="center" />
</s:layout><mx:ViewStack horizontalCenter="0"
              verticalCenter="0"
              id="contentVs"
              height="100%"
              width="100%">
    <s:NavigatorContent name="biography"
                        label="Biography"
                        width="100%"
                        height="100%">
        <comp:Biography />
    </s:NavigatorContent>
    <s:NavigatorContent name="collections"
                        label="Collections"
                        width="100%"
                        height="100%">
        <comp:Collections/>

В каждом s: NavigatorContent внутри mxViewStack У меня есть собственный компонент s: SkinnableContainer.В этих компонентах я добавил как: Scroller в качестве первого дочернего контейнера.

   <?xml version="1.0" encoding="utf-8"?>
   <s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                  xmlns:s="library://ns.adobe.com/flex/spark" 
                  xmlns:mx="library://ns.adobe.com/flex/mx"
                  width="100%" height="100%"
                  creationComplete="this_creationCompleteHandler(event)">
<s:Scroller id="scroller1"
            width="100%"
            height="100%">
    <s:Group>           
        <s:BorderContainer width="100%" height="100%" borderVisible="true">

Обратите внимание, что приложение имеет 100% для ширины и высоты.браузер скроллер не появляется.В одном из случаев s: NavigatorContent (всегда внутри ViewStack) появляется скроллер.

Я удивлен, почему он появляется только в одном случае.Если я установлю политику на на , появится s: Scroller, но он будет отключен, даже если я сделаю свой браузер довольно маленьким.скроллеры на черный.

Спасибо.

Ответы [ 2 ]

1 голос
/ 25 ноября 2010

Я не могу видеть точно из вашего примера кода, но эта строка:

<s:BorderContainer width="100%" height="100%" borderVisible="true">

выглядит так, как будто для содержимого группы скроллера установлена ​​высота = "100%".

На скроллере будет отображаться полоса прокрутки только в том случае, если содержимое ее группы шире или выше ее самого.

Попробуйте установить ширину и высоту группы на 100% и убедиться, что содержимое группы выше, чем Scroller.

например.

<s:Scroller width="100%" height="100%">
    <s:VGroup width="100%" height="100%">

        <s:Label text="The rectangle below is very tall" />

        <!-- just a boring gradient rectangle -->
        <s:Rect width="200" height="1500">
            <s:fill>
                <s:LinearGradient rotation="90">
                    <s:GradientEntry color="0xFFFF00" />
                    <s:GradientEntry color="0x00FFFF" />
                </s:LinearGradient>
            </s:fill>
        </s:Rect>

    </s:VGroup>
</s:Scroller>
0 голосов
/ 27 ноября 2010

Я заменил относительный размер стека просмотра на статический (ширина = "1200" высота = "800"), и это помогло.

<s:Group width="100%" height="100%">        
    <s:Scroller width="100%" height="100%">
        <s:VGroup horizontalAlign="center">
            <mx:ViewStack horizontalCenter="0"
                          verticalCenter="0"
                          id="contentVs"
                          width="1200" height="800">
                <s:NavigatorContent name="biography"

Что касается изменения цвета в компоненте Scroller, мне пришлось создавать свои собственные скины.

Скин для spark.components.Scroller, а также:

VScrollBarSkin VScrollBarTrackSkin VScrollBarThumbSkin ScrollBarUpButtonSkin ScrollBarDownButtonSkin

то же самое относится и к HScrollBar ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...