平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Flex DataGrid 伪合并单元格思路及代码”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="(链接已移除)"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="100%"
autoDrawBackground="false"
creationComplete="mxitemrenderer1_creationCompleteHandler(event)"
>
<s:layout>
<s:VerticalLayout verticalAlign="middle" horizontalAlign="center"/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Text;
import mx.events.FlexEvent;
protected function mxitemrenderer1_creationCompleteHandler(event:FlexEvent):void
{
var txt1:String = lbl.text.split(",")[0];
var txt2:String = lbl.text.split(",")[1];
lbl1.text = txt1;
lbl2.text = txt2;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(比如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Label id="lbl" text="{dataGridListData.label}" visible="false" height="0"/>
<s:VGroup id="vp" width="100%" height="100%" gap="2" >
<s:Label id="lbl1" color="0x000000" textAlign="center" verticalAlign="middle" width="100%"/>
<mx:HRule width="100%" chromeColor="0x999999" alpha="0.3"/>
<s:Label id="lbl2" color="0x000000" textAlign="center" verticalAlign="middle" width="100%"/>
</s:VGroup>
</s:MXDataGridItemRenderer>