Wie setzen RecyclerView Max Höhe
Möchte ich set Max Höhe von RecylerView.Ich bin in der Lage, max Höhe mit folgenden code.Unten code Höhe 60% des aktuellen Bildschirms.
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int a = (displaymetrics.heightPixels * 60) / 100;
recyclerview1.getLayoutParams().height = a;
Aber jetzt problem ist, dass, wenn es keine item dann auch seine Höhe beträgt 60%.
Deshalb möchte ich Ihre Höhe 0, wenn kein Element in ihm.
Möchte ich erreichen, wie etwas.
if(recyclerview's height > maxHeight)
then set recyclerview's height to maxHeight
else dont change the height of recyclerview.
Wie kann ich es einstellen?
Bitte helfen Sie mir, ich bin mit ihm stecken
- Haben Sie keine Lösung gefunden dafür?
- Möglich, Duplikat der Wie die maximale Höhe mit wrap-Inhalte in android?
- Fattum Antwort für mich gearbeitet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist etwas, die Sie benötigen. Eine Unterklasse der RecyclerView und überschreiben onMeasure wie folgt:
Stellen Sie sicher, Sie geben die richtige Anzahl an Bildpunkten als das erste argument in
makeMeasureSpec()
. Ich persönlich brauchte RecyclerView, das ist 240dps am meisten.Können wir optimieren @Fattum 's Methode ein wenig.
Wir können
app:maxHeight
um diemaxHeight
. Man kanndp
oderpx
wie Sie möchten.values/attrs.xml
ConstraintLayout bietet eine maximale Höhe für seine Kinder.
schreiben diese Anweisungen innerhalb von if -, else -
und lassen Sie mich wissen ,
Können Sie WRAP_CONTENT in Ihrem RecyclerView. Es wird automatisch Messen Sie Ihr recyclerview nach seinem Inhalt.
Können Sie auch die Berechnung der aktuellen Höhe und set max Höhe. So Recyclerview verwenden wrap_content Attribut-Wert bis max Höhe.
Wenn Sie eine RecyclerView entworfen, um Einzelteile zu halten der gleiche physikalische Größe, und Sie wollen eine keine-brainer Lösung zum begrenzen seiner Höhe ohne die RecyclerView, versuchen Sie dies:
Dies funktioniert sowohl für die Linear-und Grid-RecyclerViews, die Sie gerade brauchen, um spielen Sie mit den zahlen ein wenig nach Ihrem Geschmack. Vergessen Sie nicht, stellen Sie die Höhe auf WRAP_CONTENT nach dem Auffüllen der RecyclerView.
Können Sie auch die Höhe jedes mal neu die Größe myElementList Veränderungen, aber das ist kein großes Problem.
Der einfachste Weg ist ConstraintLayout und Einstellung der Höhe der Einschränkung auf Recycleview.
Bitte beachten Sie, dass vor Lollipop, die recycleview nicht scrollen. Als eine Lösung, fügen Sie den folgenden code in der activity oncreate.
Dadurch wird sichergestellt, dass die Höhe fixiert ist nur auf unterstützten Geräten, und die vollständigen recycle-Ansicht gezeigt wird, auch auf älteren Geräten.
Lassen Sie mich wissen, wenn es keine bessere Möglichkeit.
Können Sie nur eine bestimmte Höhe auf einen beliebigen Wert in den xml-code, und legen Sie die Sichtbarkeit auf gegangen. Anschließend legen Sie die Sichtbarkeit Sichtbar in Java, wenn Sie wollen, sich zu füllen es. Hier ist ein Beispiel;
.xml -
.java