我使用以下代码为Spark List组件创建了一个ItemRenderer。
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true">
<s:RichText left="10" top="10" bottom="10" paddingBottom="0" paddingLeft="0"
paddingRight="0" paddingTop="0" text="{data[1].toString()}" textAlign="left"
verticalAlign="middle" width="{parentDocument.width*0.96}"/>
</s:ItemRenderer>
问题是当传递的数据太多时,List控制器会显示滚动条。添加right="10"
不起作用。我需要一种方法,以便任何大小都不存在滚动条(这是一个AIR应用程序)。
答案 0 :(得分:0)
列表组件由滚动条本身组成。您可以使用 DataGroup (相同的输入参数,例如 itemRenderer =“”和 dataProvider =“”与列表) ,并记住设置参数 clipAndEnableScrolling =“true”。
这种方式也引入了新的潜在问题。当您有大量数据时,无法自动向上和向下滚动。但是,您可以手动监听mouseEvent,也可以在应用程序的任何位置添加自定义ScrollBar(设置viewport =“yourDataGroup”)。
答案 1 :(得分:0)
说到RichText(和itemrenderer中的滚动条),在RichText中设置minHeight="0"
和minWidth="0"
可能会解决问题 - 文本将被删除。列表中的variableRowHeight="true"
会使itemRenderers成为他们自己的计算大小。
如果您希望List始终显示其所有项目,请尝试将rowCount
绑定到dataProvider
长度,例如rowCount="{Math.max(arrayOfDataToDisplay.length, 5)}"
。
答案 2 :(得分:0)
根据对op的评论,您似乎对如何布置项目渲染器有疑问。
percentWidth
设置为100(或width=100%
} percentWidth
设置为100(同样,您可以使用width=100%
)left
,top
和bottom
约束。这两个步骤应该摆脱你的水平滚动条问题。如果继续,您可以尝试核选项并在horizontalScrollPolicy=off
上设置List
。
答案 3 :(得分:0)
此外,您应该考虑设置渲染器的maxWidth属性,以防止它变得比列表大。
答案 4 :(得分:0)
此代码完成了这项工作。
protected function ItemRenderer_Init(event:FlexEvent):void {
setInterval(ResizeRenderer, 50);
}
private function ResizeRenderer():void {
richtext.width = parentApplication.width-535;
}