Domanda

Sto avendo alcuni problemi quando si cerca di scuoiare la barra di scorrimento su un horizontalList con Degrafa. La barra di scorrimento non si presenta affatto. Ho controllato per vedere se si suppone che la barra di scorrimento di presentarsi senza la scuoiatura, e lo fa. Ci sono dei trucchi con fare questo? Ecco il codice:

Questo è dove mi definisco il HorizontalList dove voglio una barra di scorrimento dalla pelle

<mx:HorizontalList horizontalScrollBarStyleName="thumbnailScrollbar"/>

Ecco dove definisco il ClassReference per pelli (nullo per le frecce così essi non presentarsi).

.thumbnailScrollbar
{
    up-arrow-skin:      ClassReference(null);
    down-arrow-skin:    ClassReference(null);
    trackSkin:      ClassReference("ScrollBarTrackSkin");
    thumbSkin:      ClassReference("ScrollBarThumbSkin");
}

ScrollBarTrackSkin:

<?xml version="1.0" encoding="utf-8"?>
<GraphicBorderSkin  xmlns:mx="http://www.adobe.com/2006/mxml" 
                xmlns="http://www.degrafa.com/2007">
    <fills>
        <SolidFill id="upFill" color="#FFFFFF" alpha="0.8"/>
    </fills>

    <geometry>
        <RoundedRectangle id="track" x="-8" cornerRadius="16" width="{this.skinWidth}" height="{this.skinHeight}" fill="{upFill}"/>
    </geometry>

</GraphicBorderSkin>

ScrollBarThumbSkin:

<?xml version="1.0" encoding="utf-8"?>
<GraphicBorderSkin  xmlns:mx="http://www.adobe.com/2006/mxml" 
                       xmlns="http://www.degrafa.com/2007">

    <fills>
        <SolidFill id="background" color="#333333" alpha=".8"/>
    </fills>

    <geometry>
        <RoundedRectangle id="thumb" cornerRadius="16" width="{this.skinWidth}" height="{this.skinHeight}" fill="{background}"/>
    </geometry>
</GraphicBorderSkin>

sto popolando la HorizontalList con più elementi rispetto sono visualizzabili, e come ho detto prima che la barra di scorrimento si presenta quando rimuovo la scuoiatura.

È stato utile?

Soluzione

Dove è il tuo skinHeight e skinWidth stato impostato? In genere, degrafa esempi fare qualcosa di simile nella pelle per aggiornare l'altezza / larghezza:

override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
                super.updateDisplayList(unscaledWidth, unscaledHeight);
                awidth = unscaledWidth;
                aheight = unscaledHeight;

            }

In aggiunta a ciò, avevo bisogno di fare questo:

override public function get measuredWidth():Number {return 16; }
override public function get measuredHeight():Number {return 10;}

nei miei pelli barra di scorrimento per ottenere l'altezza e la larghezza che volevo. (Uguale per entrambi V & H come fanno rotazione internamente). C'era un po 'di codice hacky nelle bucce scrollbar Flex e il mio bar non erano rivelando sia.

Ma io non sono attualmente in uso per le mie degrafa pelli, quindi non ci può essere un altro problema. Non ho alcun esempio di fronte a me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top