Ich möchte einen Button unter a anzeigen ListView
. Problem ist, wenn die ListView
erweitert wird (Elemente hinzugefügt ...), wird die Schaltfläche aus dem Bildschirm gedrückt.
Ich habe es LinearLayout
mit Gewichten versucht (wie in Android vorgeschlagen: Warum gibt es kein maxHeight für eine Ansicht? ), Aber entweder habe ich die Gewichte falsch verstanden oder es hat einfach nicht funktioniert.
Außerdem habe ich irgendwo den Hinweis gefunden, a zu verwenden RelativeLayout
. Das ListView
würde dann über der Schaltfläche mit dem android:layout_above
Parameter eingestellt.
Das Problem dabei ist, dass ich nicht weiß, wie ich den Knopf danach positionieren soll. In dem Beispiel, das ich gefunden habe, wurde die Ansicht unter dem ListView
angepasst android:layout_alignParentBottom
, aber ich möchte nicht, dass meine Schaltfläche am unteren Bildschirmrand haftet.
Irgendwelche Ideen außer der Verwendung der setHeight-Methode und der Berechnung des benötigten Platzes?
Edit: Ich habe viele nützliche Antworten bekommen.
Die Lösung von bigstone & user639183 hat fast perfekt funktioniert. Ich musste jedoch einen zusätzlichen Abstand / Rand am unteren Rand der Schaltfläche hinzufügen, da dieser immer noch halb aus dem Bildschirm herausgeschoben wurde (aber dann gestoppt wurde).
Die Antwort von Adinia mit dem relativen Layout ist nur dann in Ordnung, wenn die Schaltfläche am unteren Bildschirmrand befestigt werden soll. Es ist nicht das, was ich beabsichtigt habe, könnte aber dennoch für andere nützlich sein.
Die Lösung von AngeloS war die, die ich am Ende gewählt habe, da sie nur die gewünschten Effekte erzeugt hat. Ich habe jedoch zwei geringfügige Änderungen an
LinearLayout
der Schaltfläche vorgenommen:Da ich keine absoluten Werte in meinem Layout haben wollte, wechselte ich
android:layout_height="45px"
zuwrap_content
, was auch gut funktioniert.Zweitens, da ich wollte, dass die Schaltfläche horizontal zentriert wird, was nur von vertikal unterstützt wird
LinearLayout
, habe ich android: orientierung = "horizontal" in "vertikal" geändert.
AngeloS erklärte in seinem ersten Beitrag auch, dass er nicht sicher sei, ob der
android:layout_weight="0.1"
Parameter in derLinearLayout
UmgebungListView
irgendeine Wirkung habe; Ich habe es gerade versucht und es tut es tatsächlich! Ohne wird die Taste wieder aus dem Bildschirm gedrückt.
android:layout_alignParentBottom="true"
. Möchten Sie jedoch klarstellen, dass die Schaltfläche am unteren Rand der ListView angezeigt wird, wenn nur wenige Elemente vorhanden sind? Wenn ja, sehen Sie, was Rich sagt.