以下代码使用List控件显示注释列表。项目高度设置为固定值(150),因此看起来很有效:如果内容太长,滚动条会显示......
但是,我真正想要的不是设置高度,而是根据内容大小进行更改。有没有办法实现这个目标?
<mx:List id="commentList" width="100%" dataProvider="{commentSet.commentArrayColl}"
rowCount="{commentSet.commentArrayColl.length}" >
<mx:itemRenderer>
<mx:Component>
<mx:VBox width="100%" height="150" >
<mx:Text text="{data.commentContent}" />
<mx:Text text="{data.username} ({data.modified})"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:List>
编辑: 为了更清楚,我不想将itemRenderer的VBox高度设置为“150”或任何其他固定值 - 但如果我不这样做,它只会显示文本的一行。所以我正在寻找一种方法。 (如果VBox不在itemRenderer中,它将自动调整高度,因为文本字段字符串长度增长 - 这就是我想要的。)
答案 0 :(得分:3)
添加一个绑定dataProvider.length * 150函数的高度属性:
<mx:List id="commentList" width="100%" dataProvider="{commentSet.commentArrayColl}"
rowCount="{commentSet.commentArrayColl.length}" height={commentSet.commentArrayColl.length*150}>
<mx:itemRenderer>
<mx:Component>
<mx:VBox width="100%" height="150" >
<mx:Text text="{data.commentContent}" />
<mx:Text text="{data.username} ({data.modified})"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:List>
答案 1 :(得分:1)
尝试不在VBox上设置高度,并在列表中将variableRowHeight设置为true。虽然我不确定List会对它有多好。
或者,由于您没有真正利用itemRender回收的优势(因为rowCount = dataProvider.length),您可能需要考虑使用转发器而不是列表。