Eine Layoutressource definiert die Architektur der UI in einem Activity
- oder
Komponente einer Benutzeroberfläche.
- Dateispeicherort:
res/layout/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf eine Ressource vom Typ
View
(oder abgeleitete Klasse) - Ressourcenreferenz:
-
In Java:
R.layout.filename
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, aber es kann nur ein Stammelement, das das Attributxmlns:android
und dasandroid
-Attribut enthalten muss -Namespace, wie im vorherigen Syntaxbeispiel gezeigt. - Elemente:
-
Wert für android:id
Für den ID-Wert verwenden Sie normalerweise die Syntax
"@+id/name"
, wie im folgenden Beispiel gezeigt. Die Das Pluszeichen+
gibt an, dass es sich um eine neue Ressourcen-ID handelt. Dasaapt
-Tool erstellt eine neue Ressourcen-Ganzzahl in der KlasseR.java
, falls noch nicht vorhanden.<TextView android:id="@+id/nameTextbox"/>
Der Name
nameTextbox
ist jetzt eine Ressourcen-ID, die an dieses Element angehängt wird. Sie können dann sich auf dieTextView
beziehen, der die ID in Java zugeordnet ist:Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
Dieser Code gibt das Objekt
TextView
zurück.Wenn Sie jedoch bereits eine ID-Ressource definiert haben und diese nicht bereits verwendet wird, können Sie diese ID auf ein
View
-Element anwenden, indem Sie die Pluszeichen im Wertandroid:id
.Werte für android:layout_height und android:layout_width
Die Werte für Höhe und Breite werden mit einem der Dimension Einheiten, die von Android unterstützt werden (px, dp, sp, pt, in, mm) oder mit den folgenden Keywords:
Wert Beschreibung match_parent
Legt die Dimension so fest, dass sie mit der des übergeordneten Elements übereinstimmt. In API-Ebene 8 hinzugefügt zu fill_parent
verwerfen.wrap_content
Legt die Dimension nur auf die Größe fest, die für den Inhalt dieses Elements erforderlich ist. Benutzerdefinierte Ansichtselemente
Sie können benutzerdefinierte
View
undViewGroup
erstellen und wenden sie wie bei einem Standardlayout auf Ihr Layout an. -Elements. Sie können auch die Attribute angeben, die im XML-Element unterstützt werden. Weitere Informationen Siehe Komponenten für benutzerdefinierte Ansichten 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>
Dieser Anwendungscode lädt das Layout für ein
Activity
imonCreate()
-Methode: -
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: