嗨我在渲染后遇到了spark数据网格列中数据对齐的问题。所有标题都向左对齐,但是我想做以下操作 1.列标题名称的中间位置。 2.将文本右对齐。 3.Freeze第一列,这样当我进行水平滚动时,第一列不应该水平移动。
在这方面的任何帮助都将非常感激。
谢谢和问候
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
clipAndEnableScrolling="true">
<fx:Script>
<![CDATA[
import flashx.textLayout.formats.BackgroundColor;
import mx.controls.Alert;
import mx.states.SetStyle;
private const POSITIVE_COLOR:uint = 0x000000; // Black
private const NEGATIVE_COLOR:uint = 0xFF0000; // Red
override public function prepare(hasBeenRecycled:Boolean):void {
if (this.data) {
if (column.labelFunction != null ) {
lblData.text = column.labelFunction( data, column );
setStyle("color", (parseInt(this.data.st1) < 0) ? NEGATIVE_COLOR : POSITIVE_COLOR);
} else {
lblData.text = data[column.dataField];
}
}
}
]]>
</fx:Script>
<s:Label id="lblData" top="9" left="7" textAlign="right"/>
</s:GridItemRenderer>
答案 0 :(得分:2)
2 /将文本对齐。
我将从最简单的一开始
在自定义项呈示器中,您仍然与左侧对齐(left="7"
)。您有两种方法可以解决此问题:
<s:Label id="lblData" top="9" right="7"/>
将标签向右对齐并导致文本溢出到左侧
<s:Label id="lblData" top="9" left="7" right="7" textAlign="right"/>
将使Label占用所有可用空间,将文本对齐并截断文本(如果文本太大)
1 /列标题名称的中间位置。
我认为唯一的方法是创建一个自定义headerRenderer。
textAlign
属性更改为center
<s:GridColumn headerRenderer="path.to.CenteredHeaderRenderer"/>
3 /冻结第一列,这样当我进行水平滚动时,第一列不应该水平移动。
我担心这需要一些严重的黑客行为。如果你不想潜入并创建一个自定义的DataGrid,我认为你最好的选择是伪造它: