Hallo Freunde,
Ich verwende GridView
in einem ScrollView
für die Anzeige von Bildern. In der GridView habe ich 16 Bilder, die dynamisch hinzugefügt wurden, aber die ScrollView
zeigt nicht alle 16 Bilder an (siehe Screenshot).
Ich möchte, dass ScrollView
das ganze GridView
anzeigt, weiß jemand, wie ich das beheben kann?
Danke allen.
XML-Datei:
%Vor% Verwenden Sie das Attribut android:fillViewport="true"
im XML-Layout oder verwenden Sie die Methode setFillViewport(true)
im Java-Code.
Sehen Sie sich die ScrollView-Dokumentation
anIch hatte ein ähnliches Problem, bei dem ich einen Scrollview unter einer festen Navigationsleiste auf einem AbsoluteLayout hatte.
Ich setze die scrollview-Höhe auf die Höhe meines Bildschirms abzüglich der Höhe der navbar. Mein Bildschirm war 480dp hoch und die Navbar war 47dp hoch, also habe ich im xml-Layout die scrollview height auf 433dp gesetzt und den oberen Rand des scrollview mit einem Y-Offset unterhalb der Navbar verschoben.
%Vor%Fügen Sie die folgenden Importe hinzu:
%Vor%Damit es für mehrere Bildschirme funktioniert, habe ich dies onCreate für die Aktivität hinzugefügt:
%Vor%Mit Hilfe dieser Hilfsfunktion erhalten Sie die Bildschirmhöhe:
%Vor%Sie sollten GridView nicht in ScrollView einfügen. Informationen zum Verständnis von GridView finden Sie in der GridView-API .
Gemäß der Definition zeigt GridView die Elemente in einem zweidimensionalen scrollbaren Raster an. Wenn Sie also in ScrollView eine scrollbare Komponente hinzufügen, ist das Verhalten nicht wie erwartet. Da wir ListView nicht innerhalb von ScrollView hinzufügen können, können und sollten wir GridView nicht innerhalb von ScrollView hinzufügen.
Wenn der untere Teil von layout
& amp; Der obere Teil des Layout-Gewichtes ist 0, dann setzen Sie die Scroll-Ansichten auf 1 und verwenden layout_height="match_parent"
.
Tags und Links android scrollview