Referenz zu tools-Attributen (Ansichten)

Konzepte und Jetpack Compose-Implementierung

Android Studio unterstützt eine Vielzahl von XML-Attributen im Namespace tools, die Funktionen zur Entwurfszeit ermöglichen, z. B. welches Layout in einem Fragment angezeigt werden soll, oder Verhaltensweisen zur Kompilierzeit, z. B. welcher Minimierungsmodus auf Ihre XML-Ressourcen angewendet werden soll. Wenn Sie Ihre App erstellen, werden diese Attribute von den Build-Tools entfernt, sodass sie sich nicht auf die APK-Größe oder das Laufzeitverhalten auswirken.

Wenn du diese Attribute verwenden möchtest, füge den Namespace tools dem Stammelement jeder XML-Datei hinzu, in der du sie verwenden möchtest, wie hier gezeigt:

<RootTag xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" >

Attribute für die Fehlerbehandlung

Mit dem folgenden Attribut können Sie Lint-Warnmeldungen unterdrücken:

tools:targetApi

Vorgesehen für: alle Elemente

Verwendet von: Lint

Dieses Attribut funktioniert genauso wie die Annotation @TargetApi im Java-Code. Damit kannst du das API-Level (entweder als Ganzzahl oder als Codename) angeben, das dieses Element unterstützt.

Damit teilen Sie den Tools mit, dass dieses Element und alle untergeordneten Elemente nur auf dem angegebenen API-Level oder höher verwendet werden. Dadurch wird verhindert, dass Lint Sie warnt, wenn dieses Element oder seine Attribute auf dem API-Level, das Sie als minSdkVersion angeben, nicht verfügbar sind.

Sie können dieses Attribut beispielsweise verwenden, weil GridLayout nur auf API-Level 14 und höher verfügbar ist, Sie aber wissen, dass dieses Layout in Ihrem Code für keine niedrigeren Versionen verwendet wird:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:targetApi="14" >

Wir empfehlen jedoch, stattdessen GridLayout aus der Supportbibliothek zu verwenden.

Designzeit-Ansichtsattribute

Die folgenden Attribute definieren Layoutmerkmale, die nur in der Layoutvorschau von Android Studio sichtbar sind.

tools: statt android:

Zielgruppe: <View>

Verwendet von: Android Studio-Layout-Editor

Sie können Beispieldaten in die Layoutvorschau einfügen, indem Sie das Präfix tools: anstelle von android: mit einem beliebigen <View>-Attribut aus dem Android-Framework verwenden. Das ist nützlich, wenn der Wert des Attributs erst zur Laufzeit ausgefüllt wird und Sie den Effekt in der Layoutvorschau sehen möchten.

Wenn der Attributwert android:text beispielsweise zur Laufzeit festgelegt wird oder Sie das Layout mit einem anderen Wert als dem Standardwert sehen möchten, können Sie tools:text hinzufügen, um Text nur für die Layoutvorschau anzugeben.

Mit dem Attribut „tools:text“ wird Google Voice als Wert für die Layoutvorschau festgelegt.
Abbildung 1. Mit dem Attribut tools:text wird „Google Voice“ als Wert für die Layoutvorschau festgelegt.

Sie können sowohl das Namespace-Attribut android:, das zur Laufzeit verwendet wird, als auch das entsprechende Attribut tools: hinzufügen, das das Laufzeitattribut nur in der Layoutvorschau überschreibt.

Sie können auch ein tools:-Attribut verwenden, um eine Attributeinstellung nur für die Layoutvorschau rückgängig zu machen. Wenn Sie beispielsweise ein FrameLayout mit zwei untergeordneten Elementen haben, aber nur eines davon in der Layoutvorschau sehen möchten, können Sie eines davon in der Layoutvorschau unsichtbar machen, wie hier gezeigt:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Second"
    tools:visibility="invisible"  />

Wenn Sie den Layout-Editor in der Designansicht verwenden, können Sie im Fenster Eigenschaften einige Ansichtsattribute zur Designzeit bearbeiten. Jedes Designzeitattribut wird durch ein Schraubenschlüsselsymbol Schraubenschlüssel-Symbol neben dem Attributnamen gekennzeichnet, um es vom echten Attribut mit demselben Namen zu unterscheiden.

tools:context

Vorgesehen für: Beliebige Stamm-<View>

Verwendet von: Lint, Android Studio Layout Editor

Dieses Attribut deklariert, mit welcher Aktivität dieses Layout standardmäßig verknüpft ist. Dadurch werden Funktionen im Editor oder in der Layoutvorschau aktiviert, für die Informationen zur Aktivität erforderlich sind, z. B. das Layoutdesign in der Vorschau und die Position, an der onClick-Handler eingefügt werden sollen, die aus einem Quickfix generiert wurden (siehe Abbildung 2).

Die Schnellkorrektur für das onClick-Attribut funktioniert nur, wenn Sie tools:context festgelegt haben.
Abbildung 2: Die Schnellkorrektur für das Attribut onClick funktioniert nur, wenn Sie tools:context festgelegt haben.

Sie können den Namen der Aktivitätsklasse mit demselben Punktpräfix wie in der Manifestdatei angeben (ohne den vollständigen Paketnamen).

Beispiel:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity" >

tools:itemCount

Zielgruppe: <RecyclerView>

Verwendet von: Android Studio Layout Editor

Für ein bestimmtes RecyclerView gibt dieses Attribut die Anzahl der Elemente an, die der Layout-Editor im Fenster Vorschau rendern soll.

Beispiel:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:itemCount="3"/>

tools:layout

Zielgruppe: <fragment>

Verwendet von: Android Studio Layout-Editor

Mit diesem Attribut wird deklariert, welches Layout in der Layoutvorschau im Fragment dargestellt werden soll, da die Layoutvorschau den Aktivitätscode, der normalerweise das Layout anwendet, nicht ausführen kann.

Beispiel:

<fragment android:name="com.example.main.ItemListFragment"
    tools:layout="@layout/list_content" />

tools:listitem, tools:listheader, tools:listfooter

Vorgesehen für: <AdapterView> (und abgeleitete Klassen wie <ListView>)

Verwendet von: Android Studio Layout-Editor

Diese Attribute geben an, welches Layout in der Layoutvorschau für die Elemente, die Kopfzeile und die Fußzeile einer Liste angezeigt werden soll. Alle Datenfelder im Layout werden mit numerischen Inhalten wie „Element 1“ gefüllt, damit sich die Listenelemente nicht wiederholen.

Beispiel:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:listitem="@layout/sample_list_item"
    tools:listheader="@layout/sample_list_header"
    tools:listfooter="@layout/sample_list_footer" />

tools:showIn

Vorgesehen für: Jedes Stamm-<View> in einem Layout, auf das von einem <include> verwiesen wird

Verwendet von: Android Studio Layout-Editor

Mit diesem Attribut können Sie auf ein Layout verweisen, das dieses Layout mit <include> verwendet. So können Sie diese Datei in der Vorschau ansehen und bearbeiten, während sie in das übergeordnete Layout eingebettet ist.

Beispiel:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:showIn="@layout/activity_main" />

In der Layoutvorschau wird jetzt das Layout TextView so angezeigt, wie es im Layout activity_main erscheint.

tools:menu

Vorgesehen für: Beliebige Stamm-<View>

Verwendet von: Android Studio Layout-Editor

Dieses Attribut gibt an, welches Menü in der Layoutvorschau in der App-Leiste angezeigt wird. Der Wert ist eine oder mehrere Menü-IDs, die durch Kommas getrennt sind, ohne @menu/ oder ein ähnliches ID-Präfix und ohne die Erweiterung .xml.

Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:menu="menu1,menu2" />

tools:minValue, tools:maxValue

Zielgruppe: <NumberPicker>

Verwendet von: Android Studio Layout-Editor

Mit diesen Attributen werden Mindest- und Höchstwerte für eine NumberPicker-Ansicht festgelegt.

Beispiel:

<NumberPicker xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/numberPicker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:minValue="0"
    tools:maxValue="10" />

tools:openDrawer

Zielgruppe: <DrawerLayout>

Verwendet von: Android Studio Layout-Editor

Mit diesem Attribut können Sie eine DrawerLayout in der Vorschau öffnen.

Sie können auch ändern, wie der Layout-Editor das Layout rendert, indem Sie einen der folgenden Werte übergeben:

Tabelle 1. Werte, mit denen geändert wird, wie der Layout-Editor ein DrawerLayout rendert

KonstanteWertBeschreibung
end800005Das Objekt wird an das Ende des Containers verschoben, ohne dass sich seine Größe ändert.
left3Objekt wird nach links im Container verschoben, ohne die Größe zu ändern.
right5Das Objekt wird an den rechten Rand des Containers verschoben, ohne dass sich seine Größe ändert.
start800003Das Objekt wird an den Anfang des Containers verschoben, ohne dass sich seine Größe ändert.

Beispiel:

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:openDrawer="start" />

"@tools:sample/*" Ressourcen

Vorgesehen für: Alle Ansichten, die UI-Text oder Bilder unterstützen

Verwendet von: Android Studio Layout Editor

Mit diesem Attribut können Sie Platzhalterdaten oder -bilder in Ihre Ansicht einfügen. Wenn Sie beispielsweise testen möchten, wie sich Ihr Layout mit Text verhält, bevor Sie den endgültigen UI-Text für Ihre App festgelegt haben, können Sie Platzhaltertext so verwenden:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="@tools:sample/lorem" />

In der folgenden Tabelle werden die Arten von Platzhalterdaten beschrieben, die Sie in Ihre Layouts einfügen können:

Tabelle 2. Platzhalterdaten für Layouts

AttributwertBeschreibung der Platzhalterdaten
@tools:sample/full_names Vollständige Namen, die zufällig aus der Kombination von @tools:sample/first_names und @tools:sample/last_names generiert werden
@tools:sample/first_names Häufige Vornamen
@tools:sample/last_names Häufige Nachnamen
@tools:sample/cities Namen von Städten aus aller Welt
@tools:sample/us_zipcodes Zufällig generierte US-Postleitzahlen
@tools:sample/us_phones Zufällig generierte Telefonnummern im folgenden Format: (800) 555-xxxx
@tools:sample/lorem Platzhaltertext in Latein
@tools:sample/date/day_of_week Zufällige Datums- und Uhrzeitangaben für das angegebene Format
@tools:sample/date/ddmmyy
@tools:sample/date/mmddyy
@tools:sample/date/hhmm
@tools:sample/date/hhmmss
@tools:sample/avatars Vektor-Drawables, die Sie als Profilavatare verwenden können
@tools:sample/backgrounds/scenic Bilder, die Sie als Hintergrund verwenden können