Flex Spark List 组件项目顺序

发布于 2024-12-10 13:03:05 字数 1696 浏览 1 评论 0原文

我有一个常规的火花列表,当不使用项目渲染器时,该列表会正确排序。但是,当使用以下项目渲染器时,列表会随机排列并显示列表先前实例中的项目。任何帮助将不胜感激。

<?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"
                creationComplete="itemRendererInit(event)">

<fx:Script>
    <![CDATA[
        import flash.utils.setInterval;

        import flashx.textLayout.conversion.TextConverter;

        import mx.events.FlexEvent;

        protected function itemRendererInit(event:FlexEvent):void {
            setInterval(resizeItemRenderer, 50);
            richtext.textFlow= TextConverter.importToFlow(
                '<TextFlow xmlns="http://ns.adobe.com/textLayout/2008"><linkNormalFormat color="#ac0000" textDecoration="none"/><linkHoverFormat color="#ac0000" textDecoration="underline"/><linkActiveFormat color="#ac0000" textDecoration="none"/><p><span fontWeight="bold">' +
                data[0].toString() +
                ':</span><br/><br/>' +
                data[1].toString() +
                '</p></TextFlow>', TextConverter.TEXT_LAYOUT_FORMAT);
        }

        private function resizeItemRenderer():void {
            richtext.width = parentApplication.width-525;
        }
    ]]>
</fx:Script>

<s:RichEditableText id="richtext"
            paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"
            verticalAlign="middle" editable="false" textAlign="left"/>

</s:ItemRenderer>

I have a regular spark list which is sorted correctly when no item renderer is used. However, when the following item renderer is used, the list shuffles and displays items from previous instances of the list. Any help would be appreciated.

<?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"
                creationComplete="itemRendererInit(event)">

<fx:Script>
    <![CDATA[
        import flash.utils.setInterval;

        import flashx.textLayout.conversion.TextConverter;

        import mx.events.FlexEvent;

        protected function itemRendererInit(event:FlexEvent):void {
            setInterval(resizeItemRenderer, 50);
            richtext.textFlow= TextConverter.importToFlow(
                '<TextFlow xmlns="http://ns.adobe.com/textLayout/2008"><linkNormalFormat color="#ac0000" textDecoration="none"/><linkHoverFormat color="#ac0000" textDecoration="underline"/><linkActiveFormat color="#ac0000" textDecoration="none"/><p><span fontWeight="bold">' +
                data[0].toString() +
                ':</span><br/><br/>' +
                data[1].toString() +
                '</p></TextFlow>', TextConverter.TEXT_LAYOUT_FORMAT);
        }

        private function resizeItemRenderer():void {
            richtext.width = parentApplication.width-525;
        }
    ]]>
</fx:Script>

<s:RichEditableText id="richtext"
            paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"
            verticalAlign="middle" editable="false" textAlign="left"/>

</s:ItemRenderer>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赴月观长安 2024-12-17 13:03:05

就在我的脑海中,尝试覆盖 commitProperties 而不是依赖于creationComplete 事件。在创建完成时,只需调用 invalidateProperties,然后从 commitProperties() 调用您的函数。

Just over the top of my head, try overriding commitProperties instead of relying on creationComplete event. On creationComplete, just call invalidateProperties and then call your function from commitProperties().

梦毁影碎の 2024-12-17 13:03:05

我最终发现这是一个数据绑定问题。谢谢@MD

I eventually found it to be a data binding problem. Thanks @M.D.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文