Hinweis: Siehe Update am Ende dieses Posts.
Alte Antwort:
Folgendes funktionierte für mich:
%Vor%, direkt nach dem Aufblasen der Ansicht "view".
Es nimmt im Grunde die Breite des übergeordneten Elements und ersetzt die Layoutbreite der neuen Ansicht durch die Breite der übergeordneten Ansicht.
Sie können auch eine Überprüfung für MATCH_PARENT hinzufügen, um sicherzustellen, dass sie korrekt angezeigt wird, falls Sie die XML-Datei später in einer anderen Breite ändern. Also so:
%Vor%Es wird nur die übergeordnete Breite machen, wenn vorher die Breite MATCH_PARENT war.
BEARBEITEN:
Seien Sie vorsichtig bei der übermäßigen Verwendung dieses Fixes, da eine Variation davon einen Layout-Fehler verursacht hat. Ich habe das getan:
%Vor%Das hat funktioniert, aber es hat die Breite und Höhe nicht aktualisiert, wenn die Größe der RecyclerView geändert wurde. Daher kann eine von zwei Korrekturen für dieses Update angewendet werden:
Das folgende Update scheint zu funktionieren:
%Vor% Hinweis: Wenn Sie diese Methode der Größenanpassung innerhalb der onBindViewHolder () -Methode verwenden, müssen Sie auch getAdapter () .notifyDataSetChanged ()
Kurz gesagt, die Hauptidee ist: Prüfe auf MATCH_PARENT für jede Bindung , nicht nur auf den Create View Holder. Auf diese Weise funktioniert die Größenanpassung der RecyclerView auch.
UPDATE: Ab RecyclerView v7: 23.2.1 scheint es, als hätten sie es behoben, so dass diese benutzerdefinierten Fixes jetzt nicht mehr notwendig sind. RecyclerView selbst sollte jetzt sowohl WRAP_CONTENT als auch MATCH_PARENT Einstellungen erkennen.
Entfernen Sie dies im Layout.
%Vor%Und legen Sie noch einmal die Layoutparameter für das Element im Adapter fest.
%Vor%Tags und Links android xml android-recyclerview