【发布时间】:2012-12-20 01:46:00
【问题描述】:
是的,所以我有一个DataGrid 有两列。在左列中,我希望文本向右对齐:更具体地说,如果列太小而无法显示整个文本,我希望它包含最右边的内容。
我设法通过创建一个扩展CellRenderer 的自定义类并将DataGrid 的cellRenderer 属性设置为该类来对齐它,如this article 中指定的那样。但是,这并不完全符合我的要求。它确实将文本向右对齐,但如果列太小而无法容纳所有文本,它仍然只显示最左边的部分。
有人知道我怎样才能让它显示文本的最右边吗?
您知道,这是在 FlashDevelop 中的纯 AS3 AIR 应用程序中,我的 CellRenderer 类与我在上面链接到的文章中的类相同(即 RightAlignCell)。
【问题讨论】:
-
您是否尝试更改
textField的x属性? -
只是为了清楚它按预期工作。右对齐并不意味着“显示最右边的内容”。
-
@Gio:是的,不幸的是,这似乎没有任何效果。 @SunilD:我猜你是对的,但我的意思是它没有按我的预期工作。在 Excel 等程序中,右对齐会执行此操作,因此我认为 Flash 的
DataGrid也是如此。无论如何固定标题以反映这一点。 -
我不在我的电脑自动取款机旁,等我到了那里我会试一试。我认为设置正确的对齐方式并将 textField 的
x属性设置为this.width - textField.width会做你想做的事。 -
@Gio:这对我不起作用,但请随意尝试。如果它有效,我的代码一定有一些奇怪的地方。编辑:啊哈,发现了问题。似乎
textField的宽度更改为适合列内,这意味着找到两者之间的差异会导致 +5。我从CellRenderer中覆盖的drawLayout函数中删除了super.drawLayout(),它似乎消除了具体问题,但出现了很多很多。
标签: actionscript-3 datagrid alignment right-align