Eine Layoutressource definiert die Architektur der UI in einer Activity
oder einer Komponente einer UI.
- Dateispeicherort:
res/layout/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.- kompilierter Ressourcentyp:
- Ressourcenzeiger auf eine Ressource vom Typ
View
(oder Unterklasse) - Ressourcenreferenz:
-
In Java:
R.layout.filename
In XML:@[package:]layout/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <ViewGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [ViewGroup-specific attributes] > <View android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [View-specific attributes] > <requestFocus/> </View> <ViewGroup > <View /> </ViewGroup> <include layout="@layout/layout_resource"/> </ViewGroup>
Hinweis:Das Stammelement kann ein
ViewGroup
-,View
- oder<merge>
-Element sein. Es kann jedoch nur ein Stammelement geben, das das Attributxmlns:android
mit dem Namespaceandroid
enthalten muss, wie im vorherigen Syntaxbeispiel gezeigt. - Elemente:
-
Wert für android:id
Für den ID-Wert verwenden Sie normalerweise diese Syntaxform:
"@+id/name"
, wie im folgenden Beispiel gezeigt. Das Pluszeichen+
gibt an, dass dies eine neue Ressourcen-ID ist. Dasaapt
-Tool erstellt eine neue Ressourcen-ID in der KlasseR.java
, sofern diese noch nicht vorhanden ist.<TextView android:id="@+id/nameTextbox"/>
Der Name
nameTextbox
ist jetzt eine Ressourcen-ID, die an dieses Element angehängt ist. Sie können dann auf dieTextView
verweisen, mit der die ID in Java verknüpft ist:Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
Dieser Code gibt das
TextView
-Objekt zurück.Wenn Sie jedoch bereits eine ID-Ressource definiert haben und diese noch nicht verwendet wird, können Sie diese ID auf ein
View
-Element anwenden. Dazu schließen Sie das Pluszeichen im Wertandroid:id
aus.Werte für android:layout_height und android:layout_width
Die Werte für Höhe und Breite werden mithilfe der von Android unterstützten Dimensionseinheiten (px, dp, sp, pt, in, mm) oder mit den folgenden Suchbegriffen ausgedrückt:
Antwort Beschreibung match_parent
Legt die Dimension so fest, dass sie mit der des übergeordneten Elements übereinstimmt. In API-Level 8 hinzugefügt, um fill_parent
zu verwerfen.wrap_content
Legt die Abmessung nur auf die Größe fest, die für den Inhalt dieses Elements erforderlich ist. Benutzerdefinierte Ansichtselemente
Sie können benutzerdefinierte
View
- undViewGroup
-Elemente erstellen und sie wie ein Standardlayoutelement auf Ihr Layout anwenden. Sie können auch die im XML-Element unterstützten Attribute angeben. Weitere Informationen finden Sie unter Benutzerdefinierte Ansichtskomponenten erstellen. - Beispiel:
- XML-Datei gespeichert unter
res/layout/main_activity.xml
:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
Mit diesem Anwendungscode wird das Layout für ein
Activity
in der MethodeonCreate()
geladen: -
Kotlin
public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) }
Java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }
- Siehe auch: