Riferimento agli attributi degli strumenti (visualizzazioni)

Concetti e implementazione di Jetpack Compose

Android Studio supporta una serie di attributi XML nello spazio dei nomi tools che attivano funzionalità in fase di progettazione, ad esempio il layout da mostrare in un frammento, o comportamenti in fase di compilazione, ad esempio la modalità di riduzione da applicare alle risorse XML. Quando crei l'app, gli strumenti di compilazione rimuovono questi attributi in modo che non influiscano sulle dimensioni dell'APK o sul comportamento di runtime.

Per utilizzare questi attributi, aggiungi lo spazio dei nomi tools all'elemento principale di ogni file XML in cui vuoi utilizzarli, come mostrato di seguito:

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

Attributi di gestione degli errori

Il seguente attributo consente di eliminare i messaggi di avviso di lint:

tools:targetApi

Destinato a: qualsiasi elemento

Utilizzato da: Lint

Questo attributo funziona come l'annotazione @TargetApi nel codice Java. Consente di specificare il livello API (come numero intero o nome in codice) che supporta questo elemento.

Indica agli strumenti che ritieni che questo elemento e tutti i relativi elementi secondari vengano utilizzati solo al livello API specificato o a un livello superiore. In questo modo, lint non ti avviserà se l'elemento o i relativi attributi non sono disponibili al livello API specificato come minSdkVersion.

Ad esempio, potresti utilizzare questo attributo perché GridLayout è disponibile solo nel livello API 14 e versioni successive, ma sai che questo layout non viene utilizzato nel tuo codice per le versioni precedenti:

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

Tuttavia, tieni presente che ti consigliamo di utilizzare GridLayout dalla libreria di supporto.

Attributi di visualizzazione in fase di progettazione

I seguenti attributi definiscono le caratteristiche del layout visibili solo nell'anteprima del layout di Android Studio.

tools: anziché android:

Destinato a: <View>

Utilizzato da:editor layout di Android Studio

Puoi inserire dati di esempio nell'anteprima del layout utilizzando il prefisso tools: anziché android: con qualsiasi attributo <View> del framework Android. Ciò è utile quando il valore dell'attributo non viene compilato fino al runtime e vuoi vedere l'effetto nell'anteprima del layout.

Ad esempio, se il valore dell'attributo android:text viene impostato in fase di runtime o se vuoi visualizzare il layout con un valore diverso da quello predefinito, puoi aggiungere tools:text per specificare un testo solo per l'anteprima del layout.

L&#39;attributo tools:text imposta Google Voice come valore per l&#39;anteprima
      del layout
Figura 1. L'attributo tools:text imposta "Google Voice" come valore per l'anteprima del layout.

Puoi aggiungere sia l'attributo spazio dei nomi android:, utilizzato in fase di runtime, sia l'attributo corrispondente tools:, che esegue l'override dell'attributo di runtime solo nell'anteprima del layout.

Puoi anche utilizzare un attributo tools: per annullare un'impostazione dell'attributo solo per l'anteprima del layout. Ad esempio, se hai un FrameLayout con due figli, ma vuoi visualizzarne solo uno nell'anteprima del layout, puoi impostarne uno in modo che sia invisibile nell'anteprima del layout, come mostrato qui:

<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"  />

Quando utilizzi l'editor di layout nella visualizzazione struttura, la finestra Proprietà ti consente di modificare alcuni attributi della visualizzazione in fase di progettazione. Ogni attributo in fase di progettazione è indicato con un'icona a forma di chiave L&#39;icona a forma di chiave
inglese accanto al nome dell'attributo per distinguerlo dall'attributo reale con lo stesso nome.

tools:context

Destinato a: qualsiasi radice <View>

Utilizzato da: Lint, editor layout di Android Studio

Questo attributo dichiara a quale attività è associato questo layout per impostazione predefinita. Ciò consente di attivare funzionalità nell'editor o nell'anteprima del layout che richiedono la conoscenza dell'attività, ad esempio il tema del layout nell'anteprima e dove inserire i gestori onClick generati da una correzione rapida, come mostrato nella figura 2.

Quickfix
    for the onClick attribute works only if you&#39;ve set tools:context
Figura 2. La correzione rapida per l'attributo onClick funziona solo se hai impostato tools:context.

Puoi specificare il nome della classe di attività utilizzando lo stesso prefisso punto del file manifest (escluso il nome completo del pacchetto).

Ad esempio:

<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

Destinato a: <RecyclerView>

Utilizzato da: Editor layout di Android Studio

Per un determinato RecyclerView, questo attributo specifica il numero di elementi che il Layout Editor deve eseguire il rendering nella finestra Anteprima.

Ad esempio:

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

tools:layout

Destinato a: <fragment>

Utilizzato da: Layout Editor di Android Studio

Questo attributo dichiara il layout che vuoi che l'anteprima del layout disegni all'interno del fragment perché l'anteprima del layout non può eseguire il codice dell'attività che normalmente applica il layout.

Ad esempio:

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

tools:listitem, tools:listheader e tools:listfooter

Destinato a: <AdapterView> (e sottoclassi come <ListView>)

Utilizzato da: Layout Editor di Android Studio

Questi attributi specificano quale layout mostrare nell'anteprima del layout per gli elementi, l'intestazione e il piè di pagina di un elenco. Tutti i campi di dati nel layout sono compilati con contenuti numerici, ad esempio "Articolo 1", in modo che gli elementi dell'elenco non siano ripetitivi.

Ad esempio:

<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

Destinato a: qualsiasi <View> principale in un layout a cui fa riferimento un <include>

Utilizzato da: Layout Editor di Android Studio

Questo attributo ti consente di puntare a un layout che utilizza questo layout utilizzando <include>, in modo da poter visualizzare l'anteprima e modificare questo file così come appare quando è incorporato nel layout principale.

Ad esempio:

<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" />

Ora l'anteprima del layout mostra questo layout TextView così come appare all'interno del layout activity_main.

tools:menu

Destinato a: qualsiasi radice <View>

Utilizzato da: Layout Editor di Android Studio

Questo attributo specifica il menu visualizzato nell'anteprima del layout nella barra delle app. Il valore è uno o più ID menu, separati da virgole, senza @menu/ o prefissi di questo tipo e senza l'estensione .xml.

Ad esempio:

<?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

Destinato a: <NumberPicker>

Utilizzato da: Layout Editor di Android Studio

Questi attributi impostano i valori minimo e massimo per una visualizzazione NumberPicker.

Ad esempio:

<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

Destinato a: <DrawerLayout>

Utilizzato da: Layout Editor di Android Studio

Questo attributo consente di aprire un DrawerLayout nell'anteprima.

Puoi anche modificare il modo in cui il Layout Editor esegue il rendering del layout passando uno dei seguenti valori:

Tabella 1. Valori per modificare il modo in cui l'editor del layout esegue il rendering di un DrawerLayout

CostanteValoreDescrizione
end800005Sposta l'oggetto alla fine del contenitore, senza modificarne le dimensioni.
left3Sposta l'oggetto a sinistra del contenitore, senza modificarne le dimensioni.
right5Sposta l'oggetto a destra del contenitore, senza modificarne le dimensioni.
start800003Sposta l'oggetto all'inizio del contenitore, senza modificarne le dimensioni.

Ad esempio:

<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/*" risorse

Destinato a:qualsiasi visualizzazione che supporti testo o immagini dell'interfaccia utente

Utilizzato da: Editor layout di Android Studio

Questo attributo consente di inserire dati o immagini segnaposto nella visualizzazione. Ad esempio, per testare il comportamento del layout con il testo prima di finalizzare il testo dell'interfaccia utente per l'app, puoi utilizzare il testo segnaposto come segue:

<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" />

La tabella seguente descrive i tipi di dati segnaposto che puoi inserire nei layout:

Tabella 2. Dati segnaposto per i layout

Valore attributoDescrizione dei dati segnaposto
@tools:sample/full_names Nomi completi generati in modo casuale dalla combinazione di @tools:sample/first_names e @tools:sample/last_names
@tools:sample/first_names Nomi comuni
@tools:sample/last_names Cognomi comuni
@tools:sample/cities Nomi di città di tutto il mondo
@tools:sample/us_zipcodes Codici postali statunitensi generati in modo casuale
@tools:sample/us_phones Numeri di telefono generati in modo casuale con il seguente formato: (800) 555-xxxx
@tools:sample/lorem Testo segnaposto in latino
@tools:sample/date/day_of_week Date e ore casuali per il formato specificato
@tools:sample/date/ddmmyy
@tools:sample/date/mmddyy
@tools:sample/date/hhmm
@tools:sample/date/hhmmss
@tools:sample/avatars Risorse grafiche vettoriali che puoi utilizzare come avatar del profilo
@tools:sample/backgrounds/scenic Immagini che puoi utilizzare come sfondi