flash - 如何在液体布局中为 Spark 列表设置 itemrenderer 内的标签宽度?

标签 flash apache-flex actionscript-3 width itemrenderer

在一个设计为 100% 缩放到网络窗口的 F​​lex 项目中,我有一个 Spark 列表。我有一个简单的 itemrenderer,它获取数据并显示名称和消息。只需将其想象为一个简单的即时消息显示即可。问题是,对于我的 msg_txt 标签,我想给它一个宽度,即保存它的父列表的宽度。

我尝试关闭 Horizo​​ntalScrollPolicy,还尝试将 width="{this.parent.parent.width}"(以及 this.parent.width)用于项目渲染器内的 Spark 标签。

在标签中,我尝试了一些类似 left="0"right="0"maxWidth="{this.width}"的东西,但没有真正起作用。

如何使该标签具有包含它的列表的最大宽度,并确保在浏览器大小发生变化且列表大小发生变化时调整其大小?

这是列表:

<s:List id="chat_content" width="100%" height="100%"
                alternatingItemColors="[#EEEEEE,#E6E6E6]" contentBackgroundColor="#EEEEEE"
                horizontalScrollPolicy="off" itemRenderer="renderers.ActiveChatItemRenderer">
        </s:List>

这是项目渲染器:

<?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:Script>
        <![CDATA[
            import mx.core.FlexGlobals;
            import mx.events.FlexEvent;

            import spark.components.List;

            override public function set data(value:Object):void {
                super.data = value;
                if (data == null)
                    return;

                if(data.systemMsg)
                {

                }
                if(data.name)
                {
                    name_label.text=data.name;
                }
                if(data.icon)
                {

                }
                if(data.msg)
                {
                    msg_txt.text=data.msg;
                }




            }





        ]]>
    </fx:Script>

    <s:states>
        <s:State name="normal" />
        <s:State name="hovered" />
        <s:State name="selected" />
    </s:states>

    <s:HGroup id="container" horizontalAlign="left" verticalAlign="top" paddingTop="10" paddingBottom="10">
        <s:VGroup horizontalAlign="center" verticalAlign="middle"
                  width="100">
            <s:Label id="name_label" fontWeight="bold" text="Name: "
                     fontSize="18"/>
        </s:VGroup>
        <s:Label id="msg_txt" text="msg text here" width="{this.parent.parent.width}"/>


    </s:HGroup>

</s:ItemRenderer>

最佳答案

创建 itemRenderer (creationComplete) 后,您是否尝试过以编程方式使用 percentWidthpercentHeight

我还没有尝试过下一步:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
                xmlns:s="library://ns.adobe.com/flex/spark" width="100%" height="100%">

关于flash - 如何在液体布局中为 Spark 列表设置 itemrenderer 内的标签宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528124/

相关文章:

flash - 如何使用 AS3 在 Flash 中的动态文本中添加新行

flash - 如何检测字符串中的非ascii字符?

apache-flex - Flex 项目与 Actionscript 项目的优缺点?

apache-flex - 在 ActionScript/Flex 3 中将事件与类关联的最佳方法是什么?

actionscript-3 - 获取Adobe AIR Mobile中软键盘的高度

android - 当应用程序在 Dell Venue 8 7840 上运行时,cacheAsBitmap 导致 Adob​​e Air 中 GPU 渲染模式出现图形故障

javascript - 通过 jQuery 检测 flash 点击

actionscript-3 - 为什么要使用 MXML?

c# - 多人白板竞争条件

actionscript-3 - Actionscript 3.0的良好声音类/库