Update: Ich bekomme immer noch positive Stimmen zu dieser Frage, die immer noch die akzeptierte Antwort ist und die ich meiner Meinung nach schlecht beantwortet habe. Um sicherzustellen, dass die besten Informationen verfügbar sind, habe ich beschlossen, diese Antwort zu aktualisieren.
In modernem Android würde ConstraintLayout
ich dies verwenden. Es ist performanter und unkomplizierter.
<ConstraintLayout>
<View
android:id="@+id/view1"
...other attributes elided... />
<View
android:id="@id/view2"
app:layout_constraintTop_toBottomOf="@id/view1" />
...other attributes elided... />
...etc for other views that should be aligned top to bottom...
<TextView
app:layout_constraintBottom_toBottomOf="parent" />
Wenn Sie kein ConstraintLayout verwenden möchten, ist die Verwendung eines LinearLayout mit erweiterter Ansicht eine einfache und hervorragende Möglichkeit, den zusätzlichen Speicherplatz in Anspruch zu nehmen (siehe die Antwort von @Matthew Wills). Wenn Sie den Hintergrund einer der Ansichten über der Unteransicht nicht erweitern möchten, können Sie eine unsichtbare Ansicht hinzufügen, um den Platz einzunehmen.
Die Antwort, die ich ursprünglich gegeben habe, funktioniert, ist aber ineffizient. Ineffizienz mag für ein einzelnes Layout der obersten Ebene keine große Sache sein, aber es wäre eine schreckliche Implementierung in einem ListView
oder RecyclerView
, und es gibt einfach keinen Grund, dies zu tun, da es bessere Möglichkeiten gibt, die ungefähr auf derselben Ebene liegen von Aufwand und Komplexität, wenn nicht einfacher.
Nehmen Sie die Textansicht aus dem LinearLayout und fügen Sie das LinearLayout und die Textansicht in ein RelativeLayout ein. Fügen Sie das Attribut android:layout_alignParentBottom="true"
der Textansicht hinzu. Mit allen Namespace- und anderen Attributen außer dem oben genannten Attribut entfernt:
<RelativeLayout>
<LinearLayout>
</LinearLayout>
<TextView
android:layout_alignParentBottom="true" />
</RelativeLayout>
android:gravity="bottom"
vonTextView
und fügen Sie es dem hinzuLinearLayout
. Ihr Problem wird gelöst.