2010-05-26 16 views
38

Quando si utilizza un pollice personalizzato estraibile con una vista SeekBar, il pollice estraibile viene tagliato ai bordi sinistro e destro della vista.Android SeekBar thumb viene troncato/tagliato

Come posso risolvere questo comportamento?

risposta

82

Dovresti essere in grado di risolvere questo problema impostando paddingLeft e paddingRight sul tuo SeekBar a metà della larghezza del pollice (ricorda di utilizzare unità indipendenti dalla densità). È inoltre possibile controllare lo spazio consentito ai bordi per il pollice di una barra di ricerca chiamando setThumbOffset.

+0

Qual è la dimensione deault del pollice di default? – Hurda

+1

@Hurda La dimensione di mdpi (holo) è 32x32 e l'mdpi (pre-holo) è 32x29 –

+2

Nota, se stai lavorando con VerticalSeekBars, ANCORA usi il paddingDiritto e paddingLeft –

25

mi sono imbattuto in questo problema me stesso, e credo che la decisione "correct" sarebbe quella di modificare android:thumbOffset come lo stile predefinito per un SeekBar imposta su 8px.

+1

+1! Il mio designer apprezzerà questo approccio, quindi ora la traccia del nostro slider può essere allineata a sinistra ea destra con tutto il resto come previsto. Grazie per il consiglio! – marcelebrate

+1

android: thumbOffset non ha alcun effetto su 2.3.3. Ho dovuto usare il padding. – jul

+0

'android: thumOffset' non ha alcun effetto su 2.3.3 ma puoi usare il metodo' setThumbOffset'. – Brtle

6

Per impostazione predefinita SeekBar ho usato queste impostazioni e funziona benissimo:

android:paddingLeft="6dp" 
android:paddingRight="6dp" 

android:thumbOffset="8dp" 
0

Solo per chiarezza.

In alcuni luoghi ho visto

android:thumbOffset="8dp" 

e alcuni

android:thumbOffset="8px" 

così ho guardato il codice sorgente. questo è lo stile originale

<style name="Widget.SeekBar"> 
     <item name="android:indeterminateOnly">false</item> 
     <item name="android:progressDrawable">@android:drawable/progress_horizontal</item> 
     <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item> 
     <item name="android:minHeight">20dip</item> 
     <item name="android:maxHeight">20dip</item> 
     <item name="android:thumb">@android:drawable/seek_thumb</item> 
     <item name="android:thumbOffset">8dip</item> 
     <item name="android:focusable">true</item> 
    </style> 

da

https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/styles.xml