Wie erstelle ich ein Listview, die nicht in einem Scrollview ist, oder hat die Scrollview deaktiviert?

StackOverflow https://stackoverflow.com/questions/2419246

  •  19-09-2019
  •  | 
  •  

Frage

Ich möchte einige der Leckereien in einem Listview, wie ein ListAdapter verwenden zu können, und Artikelauswahl, usw., aber ich will nicht den Scroll Teil davon. Ich möchte, dass mich trennen implementieren, in einer anderen Art und Weise (wie oder warum ich dies nicht wirklich der Sinn dieser Frage ist, also bitte nicht fragen, „warum“).

Gibt es eine Möglichkeit, eine Listview zu haben, die nicht in einem Scrollview ist oder hat das Scrollen deaktiviert?

War es hilfreich?

Lösung

Ein ListView ist nicht in einem ScrollView. Ein ListView nicht Scrollen eigen. Ich glaube nicht, dass Sie über eine einfache API Scrollen deaktivieren. Wenn ja, ist entweder Ihre Wahl ListView Unterklasse und versucht, Wege zu finden, Verhalten außer Kraft zu setzen Scrollen, Klon ListView und zu beseitigen Verhaltensweisen Scrollen oder eigenen AdapterView zu schreiben, die Dinge auf die Art und Weise machen Sie wollen.

Andere Tipps

Eine andere Möglichkeit, dies zu tun ist, um die ListView in wickeln, was auch immer benutzerdefinierte Scrollen Lösung, die Sie oben gekocht haben. Wenn Sie einfach nur die Höhe des ListView gesetzt genau wie alle Zeilen so hoch zu sein (unter Verwendung der LayoutParams der Listenansicht), dann wird es wie eine normale Ansicht handeln und blättern nicht in der Lage sein; daher können Sie es auf einem anderen Scroll-Ansicht. Die Schwierigkeit bei dieser Methode ist, dass Sie die Höhe Ihrer Liste im voraus wissen haben, so haben Sie die Höhe jeder Zeile kennen. Auch dies wird erstellen, um alle Zeilen auf einmal und so werden Sie nicht in der Lage sein, die Vorteile der Blick-Recycling-Funktion zu übernehmen.

Wenn Sie nicht eine einfache Möglichkeit haben, die Höhe der Zeit voraus zu berechnen, können Sie die ListView tricksen es für Sie tun, indem onMeasure überschrieben und es Ihre eigene Höhe spec geben:

// Calculate height of the entire list by providing a very large 
// height hint.  But do not use the highest 2 bits of this integer; 
//  those are reserved for the MeasureSpec mode.
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
        MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top