Referenz zu tools-Attributen (Ansichten)

Konzepte und Jetpack Compose-Implementierung

Android Studio unterstützt eine Vielzahl von XML-Attributen im tools-Namespace, die Designzeitfunktionen wie die Auswahl des Layouts, das in einem Fragment angezeigt werden soll, oder Kompilierzeitverhalten wie die Auswahl des Shrinking-Modus für Ihre XML-Ressourcen ermöglichen. Wenn Sie Ihre App erstellen, entfernen die Build-Tools diese Attribute, damit sie sich nicht auf die APK-Größe oder das Laufzeitverhalten auswirken.

Um diese Attribute zu verwenden, fügen Sie das tools-Namespace dem Stammelement jeder XML-Datei hinzu, in der Sie sie verwenden möchten, wie hier gezeigt:

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

Attribute zur Fehlerbehandlung

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

tools:targetApi

Vorgesehen für: jedes Element

Verwendet von: Lint

Dieses Attribut funktioniert genauso wie die @TargetApi Annotation im Java Code. Damit können Sie die API-Ebene angeben, die dieses Element unterstützt (entweder als Ganzzahl oder als Codename).

Dadurch wird den Tools mitgeteilt, dass dieses Element und alle untergeordneten Elemente nur auf der angegebenen API-Ebene oder höher verwendet werden. Lint gibt keine Warnung aus, wenn dieses Element oder seine Attribute auf der API-Ebene, die Sie als minSdkVersion angeben, nicht verfügbar sind.

Sie können dieses Attribut beispielsweise verwenden, weil GridLayout nur auf API-Ebene 14 und höher verfügbar ist, Sie aber wissen, dass dieses Layout in Ihrem Code nicht für niedrigere 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 Support-Bibliothek zu verwenden.

Attribute für die Designzeitansicht

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

tools: anstelle von android:

Vorgesehen für: <View>

Verwendet von:Android Studio-Layout-Editor

Sie können Beispieldaten in Ihre Layoutvorschau einfügen, indem Sie das tools: Präfix 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 festgelegt wird und Sie die Auswirkungen 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 nur für die Layoutvorschau einen Text anzugeben.

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

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

Sie können ein tools:-Attribut auch verwenden, um eine Attributfestlegung nur für die Layoutvorschau rückgängig zu machen. Wenn Sie beispielsweise ein FrameLayout mit zwei untergeordneten Elementen haben, aber nur ein untergeordnetes Element in der Layoutvorschau sehen möchten, können Sie eines der Elemente in der Layoutvorschau ausblenden, 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 Properties (Eigenschaften) einige Attribute für die Designzeit ansicht bearbeiten. Jedes Attribut für die Designzeit wird mit einem Schraubenschlüssel-Symbol Das Schraubenschlüsselsymbol neben dem Attributnamen gekennzeichnet, um es vom echten Attribut mit demselben Namen zu unterscheiden.

tools:context

Vorgesehen für: jedes Stamm-<View>

Verwendet von: Lint, Android Studio-Layout Editor

Mit diesem Attribut wird deklariert, welcher Aktivität dieses Layout standardmäßig zugeordnet 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 einer Schnellkorrektur generiert wurden, wie in Abbildung 2 gezeigt.

Der Quickfix für das Attribut „onClick“ funktioniert nur, wenn Sie „tools:context“ festgelegt haben.
Abbildung 2. Die Schnellkorrektur für das onClick Attribut 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

Vorgesehen für: <RecyclerView>

Verwendet von: Android Studio-Layout Editor

Für eine bestimmte RecyclerView gibt dieses Attribut die Anzahl der Elemente an, die der Layout-Editor im Fenster Preview (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

Vorgesehen für: <fragment>

Verwendet von:Android Studio-Layout-Editor

Mit diesem Attribut wird deklariert, welches Layout in der Layoutvorschau im Fragment gezeichnet werden soll, da die Layoutvorschau den Aktivitätscode, der das Layout normalerweise 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 Unterklassen wie <ListView>)

Verwendet von:Android Studio-Layout-Editor

Mit diesen Attributen wird angegeben, 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>-Element in einem Layout, auf das mit <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 eine Vorschau dieser Datei anzeigen und sie bearbeiten, wie sie eingebettet im übergeordneten Layout aussieht.

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 dieses TextView-Layout jetzt so angezeigt, wie es im Layout activity_main aussieht.

tools:menu

Vorgesehen für: jedes Stamm-<View>

Verwendet von:Android Studio-Layout-Editor

Mit diesem Attribut wird angegeben, welches Menü in der Layoutvorschau in der App-Leiste angezeigt wird. Der Wert ist eine oder mehrere Menü-IDs, getrennt durch Kommas, 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

Vorgesehen für: <NumberPicker>

Verwendet von:Android Studio-Layout-Editor

Mit diesen Attributen werden die 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

Vorgesehen für: <DrawerLayout>

Verwendet von:Android Studio-Layout-Editor

Mit diesem Attribut können Sie ein 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 zum Ändern der Darstellung eines DrawerLayout im Layout-Editor

KonstanteWertBeschreibung
end800005Objekt an das Ende des Containers verschieben, ohne die Größe zu ändern.
left3Objekt an den linken Rand des Containers verschieben, ohne die Größe zu ändern.
right5Objekt an den rechten Rand des Containers verschieben, ohne die Größe zu ändern.
start800003Objekt an den Anfang des Containers verschieben, ohne die Größe zu ändern.

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:jede Ansicht, die UI-Text oder Bilder unterstützt

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 UI-Text für Ihre App fertiggestellt haben, können Sie Platzhaltertext wie folgt 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 wurden
@tools:sample/first_names Gängige Vornamen
@tools:sample/last_names Gängige 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 auf Latein
@tools:sample/date/day_of_week Zufällige Datumsangaben und Uhrzeiten für das angegebene Format
@tools:sample/date/ddmmyy
@tools:sample/date/mmddyy
@tools:sample/date/hhmm
@tools:sample/date/hhmmss
@tools:sample/avatars Vektorgrafiken, die Sie als Profilavatare verwenden können
@tools:sample/backgrounds/scenic Bilder, die Sie als Hintergründe verwenden können