【问题标题】:Is it possible to get a custom ItemRenderer to scroll the DataGrid rather than its cell?是否可以让自定义 ItemRenderer 滚动 DataGrid 而不是其单元格?
【发布时间】:2010-10-30 18:16:55
【问题描述】:

我为 DataGrid 编写的自定义 ItemRenderer 遇到问题。使用此 ItemRenderer,内容可能会超过 DataGrid 单元格的宽度和高度 - 发生这种情况时,会出现滚动条,让我滚动单个单元格。

然而,我想要的是,当单元格的内容太大时,整个 DataGrid 会滚动,而不是单个单元格。

现在,当我将自定义 ItemRenderer 的水平和垂直滚动条策略设置为“关闭”时,我在 DataGrid 上获得了我想要的垂直滚动(单个单元格拉伸以适应内容的整个高度)但我没有'没有得到任何水平滚动。相反,任何对于单元格来说太宽的内容都会被剪裁。顺便说一句,将 DataGrid 的水平滚动条策略设置为“on”没有任何效果,滚动条排水沟被绘制,但没有任何滚动

当我的自定义 ItemRenderer 的内容对于单元格来说太宽时,有没有办法强制 DataGrid 水平滚动?

【问题讨论】:

    标签: apache-flex actionscript-3 mxml


    【解决方案1】:

    您可能必须找到一种方法来计算并在画布中水平扩展 DataGrid 的大小,以便它显示所有单元格,并且滚动条将显示为画布的一部分。

    【讨论】:

    • 我一直在玩这个,但没有成功。这里的问题是自定义项渲染器在 DataGrid 中被引用为“ClassFactory”,而不是某种 UIComponent 的具体实例。这意味着我无法在运行时确定项目渲染器的宽度,因此我可以更新 DataGrid 的宽度。有什么想法吗?
    • 不过,您也许可以获取单元格的宽度。
    • 实际上,尝试深入研究 DataGrid 的源代码,它确实包含对 ItemRenderers 的引用,但问题是渲染器被重用,确定哪些显示或不显示背后的逻辑可能不过会让人困惑。
    • 我对此完全没有运气。我已经尝试了几种解决方案,但都没有按照我想要的方式工作。到目前为止,我发现的最好方法是在 DataGrid 下方粘贴一个 Spacer 以人为地增加画布的宽度 - 但它无法检测到列宽的变化。我开始考虑重新设计我的设计,以便不再需要这种滚动行为......
    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多