如何在项呈示器中动态更改组件文本大小?
这是我的CustomItemRenderer.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
override public function set data(value:Object):void
{
super.data = value;
invalidateDisplayList();
}
private function list_itemRendererFunc(item:Object):void {
textArea2.setStyle("fontSize",
textArea2.getStyle("fontSize") + 2);
]]>
</fx:Script>
<s:Label left="10" right="10" top="10" height="25" fontSize="14" maxDisplayedLines="1"
text="{data.title}" textAlign="center"/>
<s:TextArea id="textArea2" left="10" right="10" top="35" bottom="10" editable="false"
fontSize="12" skinClass="spark.skins.mobile.TextAreaSkin"
text="{data.description }"/>
</s:ItemRenderer>
按下按钮时,我想访问textArea2并更改字体大小。 你能救我吗?
答案 0 :(得分:0)
将可绑定的public var放在itemrenderer中,然后将其绑定到fontSize,如:
<s:TextArea id="textArea2" fontSize="{mypublicvar}" ...
然后按下按钮时,循环遍历listren(或datagrid?)的itemrenderers,并将该渲染器的mypublicvar更改为新值,如:
for(var i:int = 0; i < list.dataGroup.numElements; i++)
{
var itemRendererItem:CustomItemRenderer = list.dataGroup.getElementAt(i) as CustomItemRenderer;
itemRendererItem.mypublicvar += 2;
//you can also try
itemRendererItem.textArea2.setStyle("fontSize",...
}
BTW我认为你的list_itemRendererFunc位置错误,你应该做出更好的表达问题。