2011-08-04 35 views
0

我已经为Spark List组件创建了一个ItemRenderer,其代码如下。Flex组件宽度

<?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应用程序)。

+2

显示滚动条的列表是否是项目渲染器?滚动条是水平的还是垂直的?你的问题不是很清楚。 – NoobsArePeople2

+0

我很抱歉,我们正在谈论垂直滚动条。该列表正在显示滚动条。其他一切都是默认的。 –

+0

等一下,什么?!一个列表是*假设*显示滚动条...没有滚动条,你可以从字面上有成千上万的行消耗内存。你想要完成的行为是什么?另外,你有没有尝试过DataGroup? –

回答

0

此代码完成了这项工作。

 protected function ItemRenderer_Init(event:FlexEvent):void { 
      setInterval(ResizeRenderer, 50); 
     } 

     private function ResizeRenderer():void { 
      richtext.width = parentApplication.width-535; 
     } 
0

列表组件由滚动条本身组成。您可以使用DATAGROUP(相同的输入参数,如的itemRenderer = “”数据提供程序= “”列表),并记得设置参数clipAndEnableScrolling = “真”

这种方式也引入了新的潜在问题。当你有大量的数据时,你不能自动上下滚动。但是,您可以监听mouseEvent手动执行此操作,也可以在应用程序中的任何位置添加自定义ScrollBar(设置viewport =“yourDataGroup”)。

+0

对不起我犯的一个大错误,我的意思是水平滚动条,我在晚上写了这个。 –

0

说到RichText(和itemtruerer中的滚动条),在RichText中设置minHeight="0"minWidth="0"可能会解决问题 - 文本将被剪切。列表中的variableRowHeight="true"将使itemRenderer拥有自己的计算大小。

如果您希望List始终显示其所有项目,请尝试将rowCount与您的dataProvider长度绑定,如rowCount="{Math.max(arrayOfDataToDisplay.length, 5)}"

0

根据对op的评论,看起来您对如何布置项目渲染器有困难。

  1. 设置你的项目渲染100(或者width=100%
  2. percentWidth设置你的富文本100的percentWidth(同样,你可以使用width=100%
  3. 取出lefttopbottom约束。

这两个步骤应该摆脱您的水平滚动条问题。如果它继续,您可以尝试核选项并在您的List上设置horizontalScrollPolicy=off

+0

我试过了你的建议,水平滚动条仍然出现(因为一些文本可能很长)。关闭horizo​​ntalScrollPolicy不是一个选项,需要显示所有文本。实质上,我试图包装文本,但是这个选项在较新版本的Flex框架中不可用。 –

+0

你需要使用RichText吗?你可以使用标签吗?百分比= 100时,标签将自动包装文本。使用RichText我认为您的文本需要换行才能换行。 – NoobsArePeople2

+0

不幸的是,包装换行似乎是一个非常糟糕的主意,是否有标签类中的某些东西可以复制到RichText类以使其共享相同的行为? –

0

另外你应该考虑设置你的渲染器的maxWidth属性,以防止它变得比你的列表大。

+0

好点,并且几乎可以解决问题,现在唯一的问题是调整大小时,滚动条变化... –