2011-01-31 16 views
33

Używam GridView na planszy. Ostatnio niektórzy użytkownicy mieli problemy z przewijaniem płyty w pionie (na telefonach Samsung Galaxy/Vibrant z systemem 2.2) - Ten błąd nie występuje na moim Nexusie One.Jak wyłączyć przewijanie GridView w systemie Android?

Jeden użytkownik spowodował problem z numerem screenshots.

Jak mogę zablokować GridView na miejscu? Czy istnieje sposób wyłączenia przewijania?

Odpowiedz

87

spróbuj dodać lub zastąpić setOnTouchListener dla GridView, następnie w onTouch metody można użyć kodu tak, aby zrobić gridview nie przewijania:

gridview.setOnTouchListener(new OnTouchListener(){ 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return event.getAction() == MotionEvent.ACTION_MOVE; 
    } 

}); 
+8

To jest poprawne rozwiązanie i należy przyjąć odpowiedź na to pytanie. –

+1

+1 @ Podziękowania dla mnie ... –

+1

to jest to, czego potrzebuję. Dzięki. – jayellos

10

Możesz spróbować setEnabled (false), chociaż może to mieć inne efekty uboczne. GridView naprawdę nie ma być używany w sposób, w jaki go używasz. Powinieneś stworzyć swój własny widok lub układ. Możesz również użyć TableLayout.

+0

Tak, zdaję sobie sprawę, powinien to być widok niestandardowy. Będzie nieco bardziej zaangażowany, aby zastąpić bieżący GridView (Wczesny błąd projektowy). Miał nadzieję, że nastąpi szybka naprawa :) Metoda setEnabled() dezaktywuje wszystkie funkcje. Dzięki Romain – pjama

+1

Romain Guy nie chce, abyś używał GridView bez przewijania. Używam tej sztuczki http://stackoverflow.com/a/4536955/671543. – njzk2

+0

Dla przyszłych czytelników znalazłem jeden przykład z TableLayout: http://stackoverflow.com/a/8639461/3844201 –

Powiązane problemy