сетка данных и горизонтальная прокрутка - PullRequest
0 голосов
/ 04 декабря 2009

посмотрите на этот код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" horizontalScrollPolicy="off">
    <mx:VBox horizontalScrollPolicy="on" width="100%">
        <mx:DataGrid>
            <mx:columns>
                <mx:DataGridColumn width="5000" />

            </mx:columns>
        </mx:DataGrid>
    </mx:VBox>
</mx:Application>

Сетка данных находится за пределами моего экрана, но полоса прокрутки бесполезна. Чтобы показать вам, что я имею в виду, посмотрите на скомпилированный вывод здесь: http://dl.dropbox.com/u/1663633/prova.swf

Есть идеи? Конечно, это простой пример, мой файл из реальной жизни намного сложнее, и полоса прокрутки ДОЛЖНА быть только вокруг dataGrid, а не для всего приложения.

Ответы [ 2 ]

1 голос
/ 04 декабря 2009

Проблема в том, что VBox больше, чем Application, даже если вы установили width="100%". Мне не понятно, почему он (неправильно) ведет себя так, но вы можете заставить его иметь тот же размер, что и приложение, используя width="{width}" на VBox.

0 голосов
/ 04 декабря 2009

Механизм компоновки для сетки данных не может обрабатывать столбец шире, чем сама таблица данных. У вас не возникнет этой проблемы со столбцами, размер которых меньше, чем у сетки данных.

Например, если сетка данных имеет ширину 500 пикселей и у вас есть несколько столбцов по 250 пикселей, вы можете получить требуемую политику прокрутки следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500" layout="absolute" horizontalScrollPolicy="off">
    <mx:VBox >
        <mx:DataGrid width="500" horizontalScrollPolicy="on" >
            <mx:columns>
                    <mx:DataGridColumn headerText="a" width="250" />
                    <mx:DataGridColumn headerText="b" width="250" />
                    <mx:DataGridColumn headerText="c" width="250" />
                    <mx:DataGridColumn headerText="d" width="250" />
                    <mx:DataGridColumn headerText="e" width="250" />
                    <mx:DataGridColumn headerText="f" width="250" />

            </mx:columns>
        </mx:DataGrid>
    </mx:VBox>
</mx:Application>

Это будет работать, даже если общая ширина столбцов больше, чем сетка данных.

...