2010-05-04 81 views
2

如何縮小我的linkBut​​tons和每個linkBut​​ton內的空間?Flex:如何減少組件之間的間距

我已經將填充設置爲0,但它已經是0. 我已經能夠只改變LinkBut​​tons的高度,但我不能用寬度來做,因爲文本是動態的。

<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> 
+0

你能發佈你的MXML和CSS嗎? – Prutswonder 2010-05-04 09:40:44

+0

好的,我編輯了這個問題。我使用2箇中繼器,因爲我根據完美的ArrayCollection – aneuryzm 2010-05-04 11:18:14

回答

5

您的中繼器在HBox中,默認情況下設置了水平間距。要刪除此間距,設置horizo​​ntalGap的以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> 
+0

的項目數創建項目。所以現在我只需要減少我的LinkBut​​tons的寬度。我無法使用靜態寬度,因爲文本是動態的。 – aneuryzm 2010-05-04 13:40:20

0

動態設置了LinkBut​​ton的寬度,你可能會通過覆蓋你的容器類的commitProperties做到這一點,併爲每個LinkBut​​ton的計算文本度量:

VAR米:的TextLineMetrics = linkBut​​ton.measureText(lb.label);

然後,您應該可以使用計算的度量標準爲每個LinkBut​​ton設置精確的寬度值。

另一種方式來做到這將是偵聽LinkBut​​ton的labelChanged事件,然後強制重新計算寬度在聽者。