Ich bin diesbezüglich völlig ratlos. Ich habe drei verschiedene Listen, die auf dem Bildschirm angezeigt werden müssen. Es ist durchaus möglich, dass die Listen über den unteren Bildschirmrand hinausreichen, sodass ich scrollen muss.
Ich habe versucht, a . zu verwenden ScrollView mit einer LinearLayout Kind, und mein ListViews in dem LinearView, aber alle ListViews mit Bildlaufleisten auf eine feste Höhe sperren. Die Verwendung anderer Arten von Layouts bedeutet kein Scrollen.
Hat jemand Vorschläge, oder muss ich die Listenelemente programmgesteuert zu einem Layout hinzufügen und auf das Beste hoffen?
Richard
Touch-Ereignis weiterleiten von touched Ansicht zu anderen Ansichten. Alle Ihre Ansichten werden ebenfalls synchronisiert.
Es tut mir leid, aber ich weiß nicht, wie ich diese Antwort umsetzen soll. sind mTouched, mMovingFlag globale Variablen? Gehören sie zu den anderen Listenansichten? Ist in diesem Beispiel mLayoutWithListViews die andere Listenansicht, die wir synchronisieren möchten? Danke.
– Grafik
19. September ’15 um 18:58 Uhr
Ich habe das noch nicht gemacht, aber ich habe darüber nachgedacht, da ich es wahrscheinlich tun muss. Mir fallen drei Möglichkeiten ein: Nur eine Liste mit dem Inhalt aller Listen verwenden. Sie können einen ListAdapter erstellen, der dies tut und eine Art Header einfügt. Dies könnte wahrscheinlich etwas sehr Wiederverwendbares sein.
Die andere Idee ist, eine Liste von Listen zu erstellen. Aber das klingt nach Ärger.
Was ist die dritte Möglichkeit? Weil mich dieses Thema auch interessiert und ich versucht habe, die ListViews in einem ListView-Ansatz für die Frage stackoverflow.com/questions/1526831/… durchzuführen (obwohl ich Ihre Antwort noch nicht gesehen habe). Im Gespräch mit den Jungs von #android-dev ist es noch schlimmer, ListViews in ein ListView zu packen, als sie in ein ScrollView zu packen. (Und meine Ergebnisse auch.) Da Ihre Nachkriegszeit schon ziemlich lange zurückliegt, haben Sie die All-in-A-Listen-Lösung inzwischen ausprobiert?
– svens
6. Okt. 09 um 20:31 Uhr
Ich hatte ein ähnliches Problem, außer dass ich zwei GridViews und eine ListView zum Scrollen hatte. Ich habe es gelöst, indem ich die Höhe der ListViews und GridView manuell eingestellt habe:
ListAdapter listAdapter = listView.getAdapter();
int rows = listAdapter.getCount() / columns;
int height = 60 * rows; // Insert the general cell height plus the dividers.
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = height;
listView.setLayoutParams(params);
listView.requestLayout();
Hoffe ich konnte jemandem helfen.
Obwohl diese Antwort für Bildlaufansichten anstelle von Listenansichten gilt, ist das Problem das gleiche und diese Lösung hat für mich gut funktioniert. Durch Scrollen der linken Scrollansicht wird die rechte Scrollansicht gescrollt und umgekehrt.