Flex: как уменьшить расстояние между компонентами - PullRequest
2 голосов
/ 04 мая 2010

как я могу уменьшить расстояние между кнопками ссылки и внутри каждой кнопки ссылки?

Я установил отступ в 0, но это уже было 0. Мне удалось изменить только высоту LinkButtons, но я не могу сделать это с шириной, потому что текст является динамическим.

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

Ответы [ 2 ]

5 голосов
/ 04 мая 2010

Ваш репитер находится внутри HBox, горизонтальный интервал которого установлен по умолчанию. Чтобы удалить этот интервал, установите для HorizontalGap значение 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 голосов
/ 05 мая 2010

Чтобы установить ширину LinkButtons динамически, вам, вероятно, придется сделать это путем переопределения commitProperties вашего класса контейнера, и для каждого LinkButton вычислить текстовые метрики:

var m: TextLineMetrics = linkButton.measureText(lb.label);

Тогда вы сможете использовать вычисленные метрики для установки точного значения ширины для каждого LinkButton.

Другим способом сделать это будет прослушивание событий labelChangedна LinkButton, а затем принудительно пересчитать ширину в слушателе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...