Jetzt registrieren » Login
« Login

Passwort vergessen?

Du bist hier: Android Forum » Android Developer Forum » Android Entwickler Forum » ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
Gehe zu: Neue Beiträge | Eigene Threads | Beobachtete Threads

ListView beinhaltet RatingBars und scrollt deshalb nicht richtig

Um aktiv im Android Forum teilnehmen zu können, musst Du Dich bei AndroidPIT registriert haben.

User-Foto
Benjamin Rühlde
Google Plus

Rang: Schülersprecher

Beiträge: 99

Eintrittsdatum: 15.12.2009

ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
verfasst am 02.08.2011 16:39:10
Hallo Ihrs,

ich sitze gerade an einem kniffligen Problem bei dem ihr mir hoffentlich helfen könnt.

Mein Layout besteht aus einer ListView. Das Layout der Einträge besteht aus einer TextView und einer Ratingbar. Wenn ich nun durch die Liste scrollen möchte geht dies wunderbar wenn ich auf die TextView touche und dann mit dem Finger nach oben wische. Drücke ich jedoch auf die Ratingbar und ziehe den Finger nach oben scrollt die ListView nicht mit.

Wie kann ich das Problem lösen? Ich möchte auch die ListView scrollen wenn ich auf die RatingBar drücke.

Über eine Antwort würde ich mich freuen. ;)
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Gelöschter Account
RE: ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
verfasst am 02.08.2011 16:46:35
Hängt an dem RatingBar ein Listener?

-----
Tankbuch Mobil | Wuala Music Player | Wuala Sync | GaCoMo

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Benjamin Rühlde
Google Plus

Rang: Schülersprecher

Beiträge: 99

Eintrittsdatum: 15.12.2009

RE: ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
verfasst am 02.08.2011 16:50:41
Nein, später sollte dann ein "OnRatingBarChangeListener" registriert werden.
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Gelöschter Account
RE: ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
verfasst am 02.08.2011 21:15:12
Es gibt Views die "stehlen" der ListView den Focus. Man muss dann über einen Adapter alles selbst erledigen. Schau mal bei stackoverflow.com nach. Dort gibt es Tipps.

http://stackoverflow.com/questions/3443939/ratingbar-onclick

Gruß
Harald

-----
Tankbuch Mobil | Wuala Music Player | Wuala Sync | GaCoMo

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Benjamin Rühlde
Google Plus

Rang: Schülersprecher

Beiträge: 99

Eintrittsdatum: 15.12.2009

RE: ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
verfasst am 03.08.2011 10:25:59
Danke für deine Antwort. Das ist schonmal der Anfang. Leider hänge ich nun an einem anderen Problem. Aber erst mal von vorne. ;)

Hier nochmal skizzenhaft das Layout:
1<ListView>
2 <ListEntry>
3 <TextView />
4 <RatingBar />
5 </ListEntry>
6 <ListEntry>
7 <TextView />
8 <RatingBar />
9 </ListEntry>
10 <ListEntry>
11 <TextView />
12 <RatingBar />
13 </ListEntry>
14</ListView>

Im ListAdapter wird beim erstellen der ListEntry-View bei der RatingBar mit setOnTouchListener ein neuer TouchListener registriert. Dessen onTouch-Methode wie folgt aussieht:
1@Override
2 public boolean onTouch(View v, MotionEvent event) {
3 return this.detector.onTouchEvent(event);
4 }

detector ist hierbei ein GestureDetector. In seiner
1onScroll
-Methode überprüfe ich ob horizontal oder vertikal gescrollt wird. Ist letzteres der Fall übergebe ich das MotionEvent an die ListView per dispatchTouchEvent. Hier die ganze Methode:
1@Override
2 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
3 float dX = Math.abs(e1.getX()-e2.getX());
4 float dY = Math.abs(e1.getY()-e2.getY());
5
6 if(dY > dX){
7 list.dispatchTouchEvent(e1);
8 return true;
9 }
10 return false;
11 }

Das ganze funktioniert auch sehr gut, die ListView scrollt ganz gut. Nun zu meinem Problem: Ab und an scrollt die ListView in die entgegengesetzte Richtung, wische ich mit dem Finger nach oben scrollt die ListView nicht nach unten sondern nach oben. Ich habe keine Ahnung woran das liegen kann. Ihr?

Nach eifrigem googeln bin ich auf folgenden Eintrag in der google-android-group gestoßen. Ist dieses komische Verhalten der ListView wirklich ein Android-Bug der schon seit März 2009 besteht und noch nicht behoben wurde? Oder hab ich hier ein anderes Problem? Für meine App benutze ich die API von Android 2.2.

Über Antworten würde ich mich sehr freuen und bedanke mich schonmal im vorraus.
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Gelöschter Account
RE: ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
verfasst am 03.08.2011 12:27:03
Nur geraten: Nimm mal das abs() weg.

Ich nehme immer die X/Y Rohdaten der MotionEvents - egal ob onScoll oder onFling. Ich könnte mir gut vorstellen das es mal zu einem Vergleich von -1.xxx zu +2.xxx kommt und dann erzeugt der abs() ein falsches Ergebnis.

-----
Tankbuch Mobil | Wuala Music Player | Wuala Sync | GaCoMo

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
Du bist hier: Android Forum » Android Developer Forum » Android Entwickler Forum » ListView beinhaltet RatingBars und scrollt deshalb nicht richtig
Gehe zu: Neue Beiträge | Eigene Threads | Beobachtete Threads

AndroidPIT unterstützen

Gefällt Dir AndroidPIT? Wir freuen uns, wenn Du uns unterstützt. Wie das geht? Klicke einfach auf die unten stehenden Links.

Weiterempfehlen

Gefällt Dir AndroidPIT? Dann empfiehl uns bitte weiter!

Fragen / Hilfe

Du hast Fragen zu AndroidPIT oder willst noch mehr erfahren? Diese Links helfen Dir vielleicht weiter...

  Du liest gerade: ListView beinhaltet RatingBars und scrollt deshalb nicht richtig - Android Forum - AndroidPIT. Alle Zeitangaben in UTC+02:00. Es ist jetzt 20:41 Uhr.