Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 数据网格和水平滚动策略_Apache Flex_Actionscript 3_User Interface_Flex3 - Fatal编程技术网

Apache flex 数据网格和水平滚动策略

Apache flex 数据网格和水平滚动策略,apache-flex,actionscript-3,user-interface,flex3,Apache Flex,Actionscript 3,User Interface,Flex3,请看以下代码: <?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&

请看以下代码:

<?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>

datagrid超出了我的屏幕范围,但是滚动条没有用。。 为了向您展示我的意思,请查看此处编译的输出:


有什么想法吗?当然,这是一个简单的例子,我的现实生活中的文件要复杂得多,滚动条必须在数据网格周围,而不是在整个应用程序上。

问题是
VBox
应用程序大,即使设置
width=“100%”
。我不清楚它(mis)为什么会这样,但您可以通过在VBox上使用
width=“{width}”
强制它与应用程序大小相同。

datagrid的布局引擎无法处理比datagrid本身宽的列。如果列小于datagrid,则不会出现此问题

例如,如果datagrid的宽度为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>


即使列的总宽度大于datagrid,这也会起作用。

否,布局设置为垂直或水平时也会发生同样的情况。。此外,application.width不会被编译为“未定义属性应用程序的访问权限”。没错,这似乎不是因为绝对布局。我的意思是“Application.Application.width”,在本例中是“width”。不管怎样,设置宽度的解决方法似乎很有效。(编辑了答案)不!您为数据网格设置了一个宽度!!这就是重点,它必须保持100%的宽度。如果你以我的例子为基础,它是有效的。多个列与一个大列之间的区别似乎并没有什么不同。应用程序也是一样。。width=“100%”我将500px的宽度设置为强制滚动条,因为我使用的是1920px宽的显示器。只要将其更改为100%,它将适用于您的具体情况。这并没有改变datagrid最小宽度至少应该与最大列一样大的事实。也许datagrid不是您想要的。您可能需要使用平铺控件。顺便说一句,如果更改为100%,也可以在vbox中添加一个width=“100%”。您好,朋友。。你解决这个问题了吗。。你能告诉我你是怎么修好的吗。。