Layoutressource

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 Attribut xmlns:android und das android-Attribut enthalten muss -Namespace, wie im vorherigen Syntaxbeispiel gezeigt.

Elemente:
<ViewGroup>
Ein Container für andere View-Elemente. Es gibt viele verschiedene Arten von ViewGroup-Objekten, mit denen Sie das Layout der untergeordneten Elemente auf unterschiedliche Weise angeben. Verschiedene Arten von Zu den ViewGroup-Objekten gehören LinearLayout, RelativeLayout und FrameLayout.

Nicht davon ausgehen, dass eine Ableitung von ViewGroup akzeptiert verschachtelte Ansichten. Einige Datenansichtsgruppen Implementierungen der AdapterView-Klasse, die bestimmt, seine untergeordneten Elemente nur aus einem Adapter.

Attribute:

android:id
Ressourcen-ID. Ein eindeutiger Ressourcenname für das Element, den Sie verwenden, um einen Verweis auf ViewGroup aus Ihrer Anwendung zu erhalten. Weitere Informationen Weitere Informationen
android:layout_height
Dimension oder Keyword: Erforderlich. Die Höhe der Gruppe als Dimensionswert (oder Dimensionsressource) oder ein Keyword ("match_parent" oder "wrap_content") Weitere Informationen finden Sie unter Werte für android:layout_height und android:layout_width.
android:layout_width
Dimension oder Keyword: Erforderlich. Die Breite für die Gruppe als Dimensionswert (oder Dimensionsressource) oder ein Keyword ("match_parent" oder "wrap_content") Weitere Informationen finden Sie unter Werte für android:layout_height und android:layout_width.

Das ViewGroup Basisklasse unterstützt mehr Attribute, und viele weitere werden von jeder Implementierung von ViewGroup Zu Referenz aller verfügbaren Attribute finden Sie in der entsprechenden Referenzdokumentation zur Klasse ViewGroup. zum Beispiel die XML-Datei LinearLayout Attribute

<View>
Eine einzelne UI-Komponente, die im Allgemeinen als Widget bezeichnet wird. Unterschiedlich Zu den Arten von View-Objekten gehören TextView, Button und CheckBox.

Attribute:

android:id
Ressourcen-ID. Ein eindeutiger Ressourcenname für das Element, mit dem Sie einen Verweis auf View aus Ihrer Anwendung abrufen. Weitere Informationen Weitere Informationen
android:layout_height
Dimension oder Keyword: Erforderlich. Die Höhe des Elements, einen Dimensionswert (oder Dimensionsressource) oder ein Keyword ("match_parent" oder "wrap_content") Weitere Informationen finden Sie unter Werte für android:layout_height und android:layout_width.
android:layout_width
Dimension oder Keyword: Erforderlich. Die Breite für das Element, wie einen Dimensionswert (oder Dimensionsressource) oder ein Keyword ("match_parent" oder "wrap_content") Weitere Informationen finden Sie unter Werte für android:layout_height und android:layout_width.

Das View Basisklasse unterstützt mehr Attribute, und viele weitere werden von jeder Implementierung von View Weitere Informationen finden Sie unter Layouts. Für eine Referenz aller verfügbaren Attribute, finden Sie in der entsprechenden Referenzdokumentation, z. B. in den XML-Attributen von TextView.

<requestFocus>
Jedes Element, das ein View-Objekt darstellt, kann dieses leere Element enthalten. Dadurch wird der übergeordnete Bildschirm in den Fokus rücken. Sie können nur eine dieser Optionen nutzen Elemente pro Datei.
<include>
Fügt diesem Layout eine Layoutdatei hinzu.

Attribute:

layout
Layoutressource: Erforderlich. Verweis auf ein Layout .
android:id
Ressourcen-ID. Überschreibt die ID, die der Stammansicht im eingeschlossenen Layout zugewiesen wurde.
android:layout_height
Dimension oder Keyword: Überschreibt die der Stammansicht zugewiesene Höhe in der enthaltene Layout. Nur wirksam, wenn auch android:layout_width deklariert ist.
android:layout_width
Dimension oder Keyword: Überschreibt die der Stammansicht zugewiesene Breite in der enthaltene Layout. Nur wirksam, wenn auch android:layout_height deklariert ist.

In <include> können Sie beliebige weitere Layoutattribute hinzufügen, die vom Stammelement im enthaltenen Layout unterstützt werden, und überschreiben die in der Stammelement.

Achtung:Wenn Sie Layoutattribute mit <include>-Tag müssen Sie beide überschreiben, android:layout_height und android:layout_width, um weitere Layout-Attribute wirksam werden.

Eine weitere Möglichkeit zum Einfügen eines Layouts ist die Verwendung von ViewStub: ein -Ansicht, die keinen Layoutraum einnimmt, bis Sie sie explizit aufblähen. Dabei ist auch ein Layoutdatei, die durch ihr android:layout-Attribut definiert ist. Weitere Informationen zur Verwendung von ViewStub finden Sie unter Laden On-Demand-Aufrufe.

<merge>
Ein alternatives Stammelement, das nicht in der Layouthierarchie gezeichnet ist. Dies wird als Stammelement ist nützlich, wenn Sie wissen, dass dieses Layout die bereits das entsprechende übergeordnete Element View für die untergeordneten Elemente enthält. <merge>-Element.

Dies ist besonders nützlich, wenn Sie dieses Layout in einer anderen Layoutdatei mit <include> und Für dieses Layout ist kein anderer ViewGroup-Container erforderlich. Weitere Informationen Informationen zum Zusammenführen von Layouts finden Sie unter Layouts mit <include> wiederverwenden.

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. Das aapt-Tool erstellt eine neue Ressourcen-Ganzzahl in der Klasse R.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 die TextView 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 Wert android: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:

WertBeschreibung
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 und ViewGroup 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 im onCreate()-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: