【问题标题】:how can i dynamically change component in item renderer?如何动态更改项目渲染器中的组件?
【发布时间】:2012-01-16 08:31:24
【问题描述】:

如何在项目渲染器中动态更改组件的文本大小?

这是我的 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 并更改字体大小。 你能帮帮我吗?

【问题讨论】:

    标签: apache-flex adobe mxml flex-mobile


    【解决方案1】:

    将可绑定的 public var 放入 itemrenderer 中,然后将其绑定到 fontSize,如下所示:

    <s:TextArea id="textArea2" fontSize="{mypublicvar}" ...
    

    然后当按下按钮时,循环遍历列表(或数据网格?)的 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",...
    }
    

    顺便说一句,我认为你的 list_itemRendererFunc 放错了地方,你应该提出更好的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 2015-05-18
      • 2017-08-17
      • 2021-12-28
      相关资源
      最近更新 更多