Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 在Flex中,如何将列表包装成列?_Apache Flex_Actionscript 3_Adobe_Mxml - Fatal编程技术网

Apache flex 在Flex中,如何将列表包装成列?

Apache flex 在Flex中,如何将列表包装成列?,apache-flex,actionscript-3,adobe,mxml,Apache Flex,Actionscript 3,Adobe,Mxml,如何使列表控件环绕到第二列或多列?谢谢,请告诉我是否有列表控件或其他Flex控件的解决方案 例如,如果您有一个包含42项的列表,但我想将列表的高度限制为20项;然后,我将不使用一个包含42个项目的列表,而是让该项目列表类似于3个相邻列表:第一个包含20个项目,第二个包含20个项目,第三个包含2个项目,代表42个项目的原始列表 这个问题似乎很相似,但却是冷冰冰的: 您可以为列表项使用转发器和简单的基于标签的itemRenderer,避免完全使用列表。如果您将其全部封装在自定义控件中,则可以提供与L

如何使列表控件环绕到第二列或多列?谢谢,请告诉我是否有列表控件或其他Flex控件的解决方案

例如,如果您有一个包含42项的列表,但我想将列表的高度限制为20项;然后,我将不使用一个包含42个项目的列表,而是让该项目列表类似于3个相邻列表:第一个包含20个项目,第二个包含20个项目,第三个包含2个项目,代表42个项目的原始列表

这个问题似乎很相似,但却是冷冰冰的:

您可以为列表项使用转发器和简单的基于标签的itemRenderer,避免完全使用列表。如果您将其全部封装在自定义控件中,则可以提供与List相同的API,这样您的使用者就永远不会知道其中的区别。

List控件的默认itemRenderer是只支持单行文本的TextInput。改为使用文本区域


请尝试在列表中设置以下两个属性:

wordWrap=true
variableRowHeight=true

我认为你在寻找第二排,正如其他人所指出的那样。将wordWrap设置为true或使用不同的项目呈现器是完成此操作的最佳方法,但使用自定义项目呈现器将使您能够更好地控制对象的显示方式。

我建议创建一个自定义组件,该组件可包装不同数量的列表。此自定义组件可以具有名为maxListHeight的属性。它还可以具有dataProvider属性。此自定义组件将生成一组水平对齐的列表。自定义组件生成的列表数为:floordataProvider.length/maxListHeight+1。其中,除最后生成的列表外,所有列表的listHeight均为maxListHeight;生成的最后一个列表的listHeight为:dataProvider.length%maxListHeight


这应该行得通,但是如果主列表中的项目没有从后面追加/删除,那么管理主列表中项目的添加和删除应该需要一些额外的工作。这还需要实例化多个列表而不是一个。

使用TileList并更改方向变量是我提出的最佳解决方案。

它类似于wordwrap,但是wordwrap不是严格地与文本标签关联,因此它跨越两行而不是一行,并且可能避免截断文本。很抱歉造成混淆,我绝对不想要wordwrap,因为wordwrap为每个项目提供了更多行。让我编辑我的一些问题。这个想法应该可行,但我不喜欢它必须依赖于实例化多个相邻列表。我也不喜欢这个解决方案,因为这样你还需要添加逻辑来取消选择所有其他列表。selectedItem,当你从一个列表中选择一个项目时。我希望投票否决这个答案的人能告诉我们原因。我认为这个解决方案有效。
wordWrap=true
variableRowHeight=true