Chcę zablokować przeciąganie paska wyszukiwania, jeśli wartość jest prawdziwa. Czy to możliwe? Używam paska wyszukiwania jako przełącznika. Jeśli moja wartość dla paska wyszukiwania wynosi 0, a przycisk A uruchamia się. Jeśli moja wartość dla paska wyszukiwania wynosi 1 i naciśnięto przycisk, rozpoczyna się działanie B.
Chcę temu zapobiec Jeśli akcja A lub B jest uruchomiona, pasek wyszukiwania zostanie przeciągnięty do innej pozycji.
Jak mogę to osiągnąć?Pasek wyszukiwania Android blokuje przeciąganie/blokowanie go przez krótki czas
Odpowiedz
Powinieneś ustawić swój własnyTouchListener i po prostu zwrócić true.
seekBar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return true;
}
});
Czy próbowałeś wyłączyć wyświetlanie widoku?
Ref: http://developer.android.com/reference/android/view/View.html#setEnabled(boolean)
Aktualizacja:
https://stackoverflow.com/a/3278616/529691
Idealnie nie powinno się tego robić, jak to się dzieje, aby zmylić użytkownika. Moja sugestia to ponowne przemyślenie twojego podejścia.
Ustaw poziom jedna klasa zmienna
private boolean blockSeekBar = false;
potem ustawić blockSeekBar
zmienną jak na swoje wymagania i używać w aplikacji.
seekBar.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return blockSeekbar;
}
});
setEnabled(true/false) również wybór, ale tam zobaczyć nie wykazuje dobre, więc to dlaczego powyższy kod jest doskonale działa.
Nie rozumiem. Dlaczego "setEnabled()" nie jest dobrą opcją? Dla mnie działa dobrze. –
po ustawieniu setEnabled (true/false), widok pokazuje pewne rozmycie, oznacza to, że jest bezpośrednio wyświetlany, a nie klikalny –
setEnabled (false) w rzeczywistości powoduje rozmycie paska wyszukiwania jako całości. Jeśli chcemy po prostu wyłączyć dotyk, jest to idealne rozwiązanie. – raksja
To jest najlepszy .. – Neela
dziękuję bardzo. – Atula