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%”。您好,朋友。。你解决这个问题了吗。。你能告诉我你是怎么修好的吗。。