Apache flex Flex:如何减少组件之间的间距

Apache flex Flex:如何减少组件之间的间距,apache-flex,flex3,Apache Flex,Flex3,如何减少链接按钮之间和每个链接按钮内部的空间 我已将填充设置为0,但它已为0。 我只能更改链接按钮的高度,但不能更改宽度,因为文本是动态的 <mx:Repeater id="bookmarksRepeater" dataProvider="{dataManager.bookmarksList}"> <mx:HBox> <mx:VBox> <mx:HBox> <mx:Text &g

如何减少链接按钮之间和每个链接按钮内部的空间

我已将填充设置为0,但它已为0。 我只能更改链接按钮的高度,但不能更改宽度,因为文本是动态的

<mx:Repeater id="bookmarksRepeater" dataProvider="{dataManager.bookmarksList}">
    <mx:HBox>
        <mx:VBox>
        <mx:HBox>
            <mx:Text >
               <mx:text> {String(bookmarksRepeater.currentItem.name)}</mx:text>
            </mx:Text>
            <mx:LinkButton height="16" rollOverColor="#FFA500" label="Visit" />
            <mx:LinkButton height="16" rollOverColor="#FFA500" label="Add" />
            <mx:LinkButton height="16" rollOverColor="#FFA500" label="Save" />
        </mx:HBox>
     <mx:HBox>
        <mx:Repeater id="tagsRepeater" dataProvider="{bookmarksRepeater.currentItem.tags}">
           <mx:LinkButton height="14" color="0x0033CC" rollOverColor="#FFA500" fontSize="8" label="{String(tagsRepeater.currentItem.name)}"/>
     </mx:Repeater>
     </mx:HBox>
    </mx:VBox>
     <mx:Text height="16" color="0x0033CC" fontWeight="bold" >
    <mx:text> {String(bookmarksRepeater.currentItem.popularity)} </mx:text>
       </mx:Text>
    </mx:HBox>
</mx:Repeater> 

您的中继器位于HBox内,默认设置水平间距。要删除此间距,请将水平间隙设置为0:

 <mx:HBox horizontalGap="0">
    <mx:Repeater id="tagsRepeater" dataProvider="{bookmarksRepeater.currentItem.tags}">
       <mx:LinkButton height="14" color="0x0033CC" rollOverColor="#FFA500" fontSize="8" 
           label="{String(tagsRepeater.currentItem.name)}"/>
    </mx:Repeater>
 </mx:HBox>

要动态设置LinkButton的宽度,您可能需要覆盖容器类的commitProperties,并为每个LinkButton计算文本度量:

var m:TextLineMetrics=linkButton.measureTextlb.label

然后,您应该能够使用计算出的度量为每个LinkButton设置精确的宽度值


另一种方法是在LinkButton上侦听labelChanged事件,然后在侦听器中强制重新计算宽度。

您可以发布您的MXML和CSS吗?好的,我已经编辑了这个问题。我使用2个中继器,因为我是根据ArrayCollectionperfect的项目数创建项目的。所以现在我只需要减少我的链接按钮的宽度。我不能使用静态宽度,因为文本是动态的。