【问题标题】:Error when the scroller of the mx:Tree with custom renderers is scrolled滚动带有自定义渲染器的 mx:Tree 的滚动条时出错
【发布时间】:2011-04-03 00:14:30
【问题描述】:

我为 mx:Tree 组件创建了一个自定义的多行项目渲染器。值得一提的是,我的项目渲染器中有两个 UITextFields。有时(取决于输入数据)只有一个 UITextField 必须显示,因此当不需要第二个 UITextField 时,我将其隐藏并重新计算我的项目渲染器的高度。根据我的测试,高度计算正确。

当我滚动我的树时会出现问题。错误文本是:

TypeError: Error #1010: A term is undefined and has no properties.
 at mx.controls::List/adjustVerticalScrollPositionDownward()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\List.as:1042]
 at mx.controls::List/configureScrollBars()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\List.as:987]
 at mx.controls.listClasses::ListBase/updateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:4394]
 at mx.controls::List/updateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\List.as:1136]
 at mx.controls::Tree/updateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\Tree.as:1203]
 at mx.controls.listClasses::ListBase/validateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3962]
 at mx.managers::LayoutManager/validateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:663]
 at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:736]
 at mx.managers::LayoutManager/validateNow()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:795]
 at spark.components::Application/resizeHandler()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:1215]
 at spark.components::Application/commitProperties()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:938]
 at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7772]
 at mx.managers::LayoutManager/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:572]
 at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:730]
 at mx.managers::LayoutManager/validateNow()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:795]
 at spark.components::Application/resizeHandler()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:1215]
 at flash.events::EventDispatcher/dispatchEventFunction()
 at flash.events::EventDispatcher/dispatchEvent()
 at mx.managers::SystemManager/Stage_resizeHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2971]

我使用 受保护的覆盖函数 measure() 重新计算每个项目的高度。 如何解决这个问题?

【问题讨论】:

    标签: apache-flex tree scroll itemrenderer


    【解决方案1】:

    从 3.2.0 开始的所有版本都是 Flex SDK 问题。这是我的Spark Tree component

    P.S:MX 列表和树有很多错误。就我而言,Spark List 有 1 个 :)

    【讨论】:

    • 感谢您的帮助,马克西姆!所以唯一的解决方案是使用 Spark List,但它只适用于 XML 数据,不是吗?
    • Alex Harui 的 Spark Tree 是一个展示案例,而不是一个即用型组件。今天我将在我的博客上发布一个完整的 Spark Tree 组件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    相关资源
    最近更新 更多