【问题标题】:Flex List Component with Checkbox带有复选框的弹性列表组件
【发布时间】:2009-12-31 17:10:34
【问题描述】:

我正在尝试向我的应用程序中的 List 组件添加一个复选框,并且在滚动浏览数据之前一切正常。

当我在列表中垂直滚动时,我可能添加的任何检查都开始添加到列表中的其他项目中,有时甚至不再检查我检查的原始项目。 例如,我的列表高度足以看到 5 个项目,我选中第 1 个项目,向下滚动,每 5 个项目开始被检查。

这真的很奇怪,我无法弄清楚它为什么会这样做。我在网上查看了一些示例,据我所知,我没有做任何不同的事情。

当我滚动浏览我的列表时,我运行了一些跟踪,并触发了 Checkbox datachange 事件,但同样,我不知道为什么。

这是我的列表的 mxml 测试页面。

感谢您的帮助。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Array id="arr">
        <mx:Object label="One" />
        <mx:Object label="Two" />
        <mx:Object label="Three" />
        <mx:Object label="Four" />
        <mx:Object label="Five" />
        <mx:Object label="Six" />
        <mx:Object label="Seven" />
        <mx:Object label="Eight"/>
        <mx:Object label="Nine" />
        <mx:Object label="Ten" />
        <mx:Object label="Eleven" />
        <mx:Object label="Twelve" />
    </mx:Array>

    <mx:List
        id="addrList"
        height="100"
        width="100%" fontSize="10"
        borderStyle="solid"
        borderColor="#000000"
        borderThickness="1"
        dataProvider="{ arr }">
        <mx:itemRenderer>
            <mx:Component>
                <mx:CheckBox
                    change="trace('change')"
                    dataChange="trace('dataChange')"/>
            </mx:Component>
        </mx:itemRenderer>
    </mx:List>
</mx:Application>

【问题讨论】:

  • 你有没有设法找出问题所在?

标签: flex3 flexbuilder


【解决方案1】:

您将对象放入列表 dataprovider,dataprovider 仅支持文本

试试这个

<mx:Script>
        <![CDATA[
            [Bindable]
            private var arr:Array = ["a","b","c","d","e","f","g"];
        ]]>
    </mx:Script>

    <mx:List
        id="addrList"
        height="100"
        width="100%" fontSize="10"
        borderStyle="solid"
        borderColor="#000000"
        borderThickness="1"
        dataProvider="{ arr }">
        <mx:itemRenderer>
            <mx:Component>
                <mx:CheckBox change="trace('change')"
                dataChange="trace('dataChange')"/>
            </mx:Component>
        </mx:itemRenderer>
    </mx:List>

【讨论】:

  • 你说dataprovider只支持文本我不同意。我必须承认,我不明白为什么您的答案解决了问题,以及为什么这已被接受为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
  • 2014-03-08
  • 1970-01-01
  • 2016-05-05
  • 2019-01-20
  • 2014-04-11
  • 2018-02-14
相关资源
最近更新 更多