2011-06-27 13 views
21

Wpadłem na jakiś dziwny problem .. Zaimplementowałam okienko wyszukiwania z niestandardowym kciukiem .. i kiedy uruchomiłem moją aplikację na HTC Desire, wszystko działa dobrze .. ale kiedy uruchomiłem ją na Samsung Galaxy, kciuk zostaje obcięty!Android seekbar obcięty kciuk

Oto screeny ..

pragnienie:

Desire seekbar

Samsung Galaxy:

Galaxy seekbar

Byłbym wdzięczny za wszelkie thoughts..tnx

myprogress.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:id="@android:id/background"> 
    <shape> 
     <corners 
      android:radius="10dp" /> 
     <gradient 
       android:startColor="@color/gray" 
       android:centerColor="@color/gray" 
       android:centerY="0.75" 
       android:endColor="@color/gray" 
       android:angle="270" 
     /> 
    </shape> 
</item> 

<item android:id="@android:id/secondaryProgress"> 
    <clip> 
     <shape> 
     <corners 
      android:radius="10dp" /> 
      <gradient 
        android:startColor="@color/white" 
        android:centerColor="@color/white" 
        android:centerY="0.75" 
        android:endColor="@color/white" 
        android:angle="270" 
      /> 
     </shape> 
    </clip> 
</item> 

<item android:id="@android:id/progress"> 
    <clip> 
     <shape> 
     <corners 
      android:radius="10dp" /> 
      <gradient 
       android:startColor="#FFA500" 
       android:centerColor="@color/yellow" 
       android:centerY="0.75" 
       android:endColor="@color/yellow" 
       android:angle="270" 
      /> 
     </shape> 
    </clip> 
</item> 

styl:

<style name="mySeekBar"> 
    <item name="android:indeterminateOnly">false</item> 
    <item name="android:progressDrawable">@drawable/myprogress</item> 
    <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item> 
    <item name="android:minHeight">10dip</item> 
    <item name="android:maxHeight">10dip</item> 
    <item name="android:thumb">@drawable/thumb</item> 
    <item name="android:thumbOffset">4dp</item> 
    <item name="android:focusable">true</item> 

SeekBar xml:

<SeekBar android:id="@+id/player_seek_horizontal" 
     android:layout_gravity="center_vertical" 
     android:max="100" 
     android:layout_marginLeft="50dp" 
     android:layout_width="180dp" 
     android:thumb="@drawable/thumb" 
     android:layout_height="wrap_content" 
     style="@style/mySeekBar" 
     android:background="@drawable/background_transparent_rounded" 
     android:paddingRight="4dp" android:paddingLeft="4dp"/> 
+0

Proszę zamieścić odpowiednie pliki XML i źródłowe. – sparkymat

+0

Czy byłeś w stanie rozwiązać ten problem? Mam ten sam problem z domyślnym filtrem wyszukiwania. Używanie 'dopełnienia' i' thumbOffset' sprawia, że ​​zachowuje się inaczej w różnych wersjach API. – faizal

Odpowiedz

32

Regulacja android:paddingLeft, android:paddingRight się nd android:thumbOffset właściwości twojego SeekBar, aby osiągnąć pożądane rezultaty.

Wypełnienie prawe i lewe powinno być o połowę mniejsze niż szerokość kciuka.

+0

Jeśli spojrzysz na te xmls, zobaczysz, że już to wypróbowałem ... Jeśli ustawię to poprawnie dla jednego urządzenia, to okaże się złe dla innego –

+2

@TomislavNovoselec, Wypełnienie po prawej i lewej stronie powinno być o połowę mniejsze od szerokości kciuka. To powinno działać. – JRC

+1

Jak się dowiedzieć lub ustawić szerokość kciuka? – faizal

7
<SeekBar 
    ... 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:thumbOffset="0px" /> 

To zadziałało dla mnie.

Powiązane problemy