[Flex] sparkのDataGridで列ごとの文字揃えを変更する
sparkのDataGridに指定した列に表示する値の文字揃え位置を変更する方法です。
itemrendererにDefaultGridItemRendererを指定して、スタイルにtextAlignをセットします。
他にフォント設定なども可能です。
ただし、縦方向の文字揃え(verticalAlignみたいな)はできないので、
その場合は、専用のItemRendererを定義する必要があります。
<s:DataGrid width="300" height="300" dataProvider="{dataList}"> <s:columns> <s:ArrayList> <s:GridColumn headerText="col1" dataField="value1"> <s:itemRenderer> <fx:Component> <s:DefaultGridItemRenderer textAlign="left"/> </fx:Component> </s:itemRenderer> </s:GridColumn> <s:GridColumn headerText="col2" dataField="value2"> <s:itemRenderer> <fx:Component> <s:DefaultGridItemRenderer textAlign="center"/> </fx:Component> </s:itemRenderer> </s:GridColumn> </s:ArrayList> </s:columns> </s:DataGrid>
mxのDataGridだったら、DataGridColumnにtextAlignが指定できたので簡単でした。
Flex4になってから、プログラムの難易度がかなり上がった気がします。
SkinやState,itemRendererの仕組みを理解しないと、ちょっとしたカスタマイズもできません。
文字揃えを変更するためだけのために、
ItemRendererを定義しなければいけないのはかなり面倒です。
何でも入りのコンポーネントをやめて、軽量化させることで、
プログラム言語としての完成度は上がったのかもしれませんが、
構造が複雑になり、初心者には扱いづらい言語になっていると思います。
== ランキングに参加しています。ぜひクリックお願いします ==
「児童手当」名称復活、所得制限で合意 [Flex] GridItemRendererの中でdataFieldにアクセスするには