Ich habe ein HorizontalList-Steuerelement, das einen benutzerdefinierten ItemRenderer verwendet, um jedes Element als eine Umschaltfläche darzustellen. Die Liste erlaubt Drag and Drop, und ich habe this method verwendet, um die Drop-Feedback (Linie) in eine vertikale Position anstelle von horizontal zu drehen, aber mit den Tasten zusammengestampft, ist das Drop-Feedback ziemlich subtil. Ich möchte die Buttons irgendwie aussparen, damit das Drop-Feedback deutlicher wird.Flex: Wie platziere ich Elemente in einem HorizontalList-Steuerelement (mithilfe eines benutzerdefinierten ItemRenderer)
Ich habe durch die Eigenschaften geschaut und nichts fällt auf. Es gibt Padding- und Margin-Eigenschaften, aber ihre Beschreibungen sagen, dass sie das Listen-Steuerelement selbst beeinflussen, nicht die Elemente.
Unten ist der Code meines ItemRenderer. Ich habe eine Polsterung hinzugefügt, aber das scheint nichts zu ändern. Wenn ich Padding hinzufüge, wirkt sich dies auf die Innenseite der Schaltfläche und nicht auf den Abstand zwischen ihnen aus, und das Schaltflächensteuerelement hat keine Randeigenschaften.
Ich nehme an, ich könnte meinen ItemRenderer auf einer Zeichenfläche basieren, um einen Rand zu bekommen, aber dann würde ich nicht die ganze Funktionalität einer Schaltfläche erben.
<?xml version="1.0" encoding="utf-8"?>
<mx:Button
xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="go();"
toggle="true"
>
<mx:Script>
<![CDATA[
private var _val:int = -1;
private function go():void {
this.label = data.title;
_val = data.index;
}
override protected function clickHandler(event:MouseEvent):void{
//todo: bubble an event that causes all other
//buttons in the list to un-toggle
//now do the default clickHandler
super.clickHandler(event);
}
]]>
</mx:Script>
</mx:Button>
Haben Sie versucht, dem itemRenderer selbst Padding/Rand hinzuzufügen? – Stiggler