2013-04-29 8 views
10

Mam pasek SeekBar, który zmieni postęp, gdy tego wymagam, ale nie chcę, aby użytkownik mógł go zmienić ręcznie.Wyłącz zmiany na ekranie wyszukiwania według klienta

Próbowałem ustawić SeekBar jak to:

<SeekBar 
     android:id="@+id/seekBar1" 
     android:layout_width="match_parent" 
     android:layout_height="65dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="78dp" 
     android:progress="10" 
     android:max="100" 
     android:clickable="false" 
     android:thumb="@drawable/transparent" 
     android:progressDrawable="@drawable/customprogressbar" /> 

Ale to nie działa.

Jak mogę to zrobić?


To mniej więcej przykład tego, jak klient będzie postrzegany.

Użyłem niestandardowego stylu, ponieważ w przyszłości będę musiał zmienić obrazy tła i postępy w zależności od tego, która sekcja będzie pasować SeekBar.

Dzięki za wszystko!

No given description by asker

+0

Użyj paska postępu? –

+0

Dupe: http://stackoverflow.com/questions/4136569/how-to-set-an-android-seekbar-to-be-unmoveable-frozen – greg7gkb

+0

Możliwy duplikat [Jak ustawić Android SeekBar jako niemożliwy do użycia/zamrożony ?] (http://stackoverflow.com/questions/4136569/how-to-set-an-android-seekbar-to-be-unmoveable-frozen) –

Odpowiedz

18

Jedną rzeczą, jaką można zrobić, to wyłączyć SeekBar, Podoba seekbar.setEnabled(false)

ten sposób ramy nie zaakceptuje żadnego zdarzenia dotykowej z użytkownikiem i można zmienić poziom postępu tylko za pomocą kodu .

Mam nadzieję, że to pomoże .......

+0

Chociaż możesz chcieć dołączyć niestandardowy draw do ustawiania paska wyszukiwania wyłączony zmieni wygląd paska wyszukiwania. – dberm22

+1

@Arjun, testowałem to, co mi podsuwasz, i to działa;) Dzięki! – Shudy

+0

Chcę, aby pasek wyszukiwania był ruchomy tylko kciukiem i wyłączał kliknięcie. jak to zrobić ? –

27

Można użyć androida: enabled = "false", ale będzie on wyświetlany wyłączyć efekt [przyciemnić SeekBar].

Jeśli chcesz wyświetlić pasek wyszukiwania bez odpowiedzi na aktywność kciuka, zaimplementuj procedurę obsługi zdarzenia dotykowego, zwracając wartość true, jak pokazano poniżej.

seekBar.setOnTouchListener(new OnTouchListener(){ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    return true; 
} 
}); 
1

Po prostu zwróć false z metody onTouch klasy CustomSeekBar.

Mam nadzieję, że to działa!

Powiązane problemy