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.
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
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.
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
| Konstante | Wert | Beschreibung |
|---|---|---|
end | 800005 | Objekt an das Ende des Containers verschieben, ohne die Größe zu ändern. |
left | 3 | Objekt an den linken Rand des Containers verschieben, ohne die Größe zu ändern. |
right | 5 | Objekt an den rechten Rand des Containers verschieben, ohne die Größe zu ändern. |
start | 800003 | Objekt 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
| Attributwert | Beschreibung 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 |