Verwenden Sie einfach RelativeLayout
oder FrameLayout
. Die letzte untergeordnete Ansicht überlagert alles andere.
Android unterstützt ein Muster, das Cocoa Touch SDK nicht unterstützt: Layoutverwaltung.
Layout für iPhone bedeutet, alles absolut zu positionieren (abgesehen von einigen Dehnungsfaktoren). Layout in Android bedeutet, dass Kinder in Beziehung zueinander gestellt werden.
Beispiel (der zweite EditText deckt den ersten vollständig ab):
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root_view">
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText1"
android:layout_height="fill_parent">
</EditText>
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText2"
android:layout_height="fill_parent">
<requestFocus></requestFocus>
</EditText>
</FrameLayout>
FrameLayout
ist eine Art Ansichtsstapel. Gemacht für besondere Fälle.
RelativeLayout
ist ziemlich mächtig. Sie können Regeln definieren, z. B. Ansicht A muss das übergeordnete Layout unten ausrichten , Ansicht B muss A unten nach oben ausrichten usw.
Update basierend auf Kommentar
Normalerweise setzen Sie den Inhalt mit setContentView(R.layout.your_layout)
in onCreate
(es wird das Layout für Sie aufblasen). Sie können das manuell machen und anrufen setContentView(inflatedView)
, es gibt keinen Unterschied.
Die Ansicht selbst kann eine einzelne Ansicht (wie TextView
) oder eine komplexe Layouthierarchie sein (verschachtelte Layouts, da alle Layouts selbst Ansichten sind).
Nachdem Sie setContentView
Ihre Aktivität aufgerufen haben, wissen Sie, wie ihr Inhalt aussieht, und Sie können (FrameLayout) findViewById(R.id.root_view)
jede Ansicht in dieser Hierarchie abrufen (allgemeines Muster (ClassOfTheViewWithThisId) findViewById(R.id.declared_id_of_view)
).
layoutinflater
, um einerelativelayout
aus einer Layout-XML-Datei abzurufen, wie kann ich sie der Inhaltsansicht hinzufügen? Gibt es eine Möglichkeit, einen Verweis auf die Inhaltsansicht zu erhalten? Vielen Dank