Компонент Flex 4 Scroller не отображает горизонтальную полосу прокрутки

Я почти уверен, что мой динамический макет mxml должен давать мне две полосы прокрутки (горизонтальную и вертикальную), но он показывает только вертикальную. Я что-то упустил или это баг?

<?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" width="100%" height="100%" xmlns:local="*">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;

            [Bindable]
            public var myData:ArrayCollection = new ArrayCollection([
                {name:"Jane"},
                {name:"Sonny"},
                {name:"Alicia"}
            ]);
        ]]>
    </fx:Script>
    <s:Scroller width="100%" height="100%">
        <s:VGroup>
            <s:Group minHeight="600" minWidth="800" height="100%" width="100%">
                <mx:HDividedBox id="div1" width="100%" height="100%" autoLayout="true" liveDragging="true">
                    <mx:DataGrid width="100%" height="100%" dataProvider="{myData}"/>
                    <mx:DataGrid width="100%" height="100%" dataProvider="{myData}"/>
                </mx:HDividedBox>
            </s:Group>
        </s:VGroup>
    </s:Scroller>
</s:Application>

person Nek    schedule 30.08.2010    source источник


Ответы (2)


Удалите VGroup внутри Scroller или измените его на Group! Кажется, что горизонтальная полоса прокрутки не отображается при использовании VGroup в качестве первого дочернего элемента

person Timo    schedule 25.03.2011
comment
Изменение VGroup на Group действительно работает! Спасибо. Кстати, мне это кажется ошибкой Flex SDK. - person Nek; 27.03.2011

Вы не установили horizontalScrollPolicy и verticalScrollPolicy для Scroller и, следовательно, их значение установлено на auto. Поведение в этом случае заключается в отображении полос прокрутки только в случае необходимости.

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

Попробуйте с

<s:Scroller width="100%" height="100%" horizontalScrollPolicy="on">
person Amarghosh    schedule 30.08.2010
comment
Ты пробовал это? Это приведет к появлению компонента горизонтальной полосы прокрутки, но он будет отключен навсегда независимо от размера окна приложения, и мне нужно, чтобы он работал, когда ширина окна меньше minWidth содержимого. Пока все работает хорошо для minHeight, но та же логика ломается на горизонтальной полосе прокрутки. Вы можете легко проверить это, вставив мой код в пустой проект flex и скомпилировав его. - person Nek; 01.09.2010