Risorsa layout
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Una risorsa di layout definisce l'architettura della UI in un elemento Activity
o in un componente di una UI.
- percorso file:
res/layout/filename.xml
Il nome file viene utilizzato come ID risorsa.
- tipo di dati della risorsa compilata:
- Puntatore di risorsa a una risorsa
View
(o una sottoclasse)
- riferimento risorsa:
-
In Java:
R.layout.filename
In XML: @[package:]layout/filename
- :
-
<?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>
Nota: l'elemento principale può essere ViewGroup
, View
o <merge>
, ma può esserci un solo elemento radice e deve contenere l'attributo xmlns:android
con lo spazio dei nomi android
, come mostrato nell'esempio di sintassi precedente.
- :
-
<ViewGroup>
- Un contenitore per altri elementi
View
. Esistono molti tipi diversi di oggetti ViewGroup
e ognuno consente di specificare il layout degli elementi secondari in modi diversi. Diversi tipi di oggetti
ViewGroup
includono LinearLayout
,
RelativeLayout
e FrameLayout
.
Non dare per scontato che qualsiasi derivazione di ViewGroup
accetti visualizzazioni nidificate. Alcuni gruppi di visualizzazioni
sono implementazioni della classe AdapterView
, che determina
i gruppi di visualizzazioni solo da un Adapter
.
Attributi:
android:id
- ID risorsa: Un nome di risorsa univoco per l'elemento, che puoi utilizzare per ottenere un riferimento a
ViewGroup
dalla tua applicazione. Per ulteriori informazioni, consulta la sezione Valore per android:id.
android:layout_height
- Dimensione o parola chiave. Obbligatorio. L'altezza del gruppo, sotto forma di valore di dimensione (o risorsa di dimensione) o parola chiave (
"match_parent"
o "wrap_content"
). Per ulteriori informazioni, consulta la sezione Valori per android:layout_height e
android:layout_width.
android:layout_width
- Dimensione o parola chiave. Obbligatorio. La larghezza del gruppo, come valore di dimensione (o risorsa di dimensione) o parola chiave (
"match_parent"
o "wrap_content"
). Per ulteriori informazioni, consulta la sezione Valori per android:layout_height e
android:layout_width.
La classe di base ViewGroup
supporta più attributi e molti altri sono supportati da ogni implementazione di ViewGroup
. Per un riferimento di tutti gli attributi disponibili, consulta la documentazione di riferimento corrispondente per la classe ViewGroup
, ad esempio gli attributi XML di LinearLayout
.
<View>
- Un singolo componente dell'interfaccia utente, generalmente chiamato widget. Diversi tipi di oggetti
View
includono TextView
, Button
e CheckBox
.
Attributi:
android:id
- ID risorsa: Un nome risorsa univoco per l'elemento, che puoi utilizzare per ottenere un riferimento a
View
dalla tua applicazione. Per ulteriori informazioni, consulta la sezione Valore per android:id.
android:layout_height
- Dimensione o parola chiave. Obbligatorio. L'altezza dell'elemento, sotto forma di valore di dimensione (o risorsa di dimensione) o parola chiave (
"match_parent"
o "wrap_content"
). Per ulteriori informazioni, consulta la sezione Valori per android:layout_height e android:layout_width.
android:layout_width
- Dimensione o parola chiave. Obbligatorio. La larghezza dell'elemento, come valore di dimensione (o risorsa di dimensione) o parola chiave (
"match_parent"
o "wrap_content"
). Per ulteriori informazioni, consulta la sezione Valori per android:layout_height e android:layout_width.
La classe di base View
supporta più attributi e molti altri sono supportati da ogni implementazione di View
. Per ulteriori informazioni, consulta la sezione Layout. Per un riferimento di tutti gli attributi disponibili, consulta la documentazione di riferimento corrispondente, ad esempio gli attributi XML di TextView
.
<requestFocus>
- Qualsiasi elemento che rappresenti un oggetto
View
può includere questo elemento vuoto,
in modo che l'elemento principale sia impostato come attivo sullo schermo. Puoi avere solo uno di questi elementi per file.
<include>
- In questo layout è incluso un file di layout.
Attributi:
layout
- Risorsa layout. Obbligatorio. Riferimento a una risorsa
di layout.
android:id
- ID risorsa: Esegue l'override dell'ID assegnato alla vista principale nel layout incluso.
android:layout_height
- Dimensione o parola chiave. Esegue l'override dell'altezza assegnata alla vista principale nel layout incluso. In vigore solo se viene dichiarato anche
android:layout_width
.
android:layout_width
- Dimensione o parola chiave. Esegue l'override della larghezza assegnata alla visualizzazione principale nel
layout incluso. In vigore solo se viene dichiarato anche
android:layout_height
.
In <include>
puoi includere qualsiasi altro attributo di layout supportato dall'elemento principale nel layout incluso e sostituire quelli definiti nell'elemento principale.
Attenzione: se vuoi sostituire gli attributi di layout utilizzando il tag <include>
, devi sostituire entrambi gli attributi android:layout_height
e android:layout_width
affinché gli altri attributi di layout abbiano effetto.
Un altro modo per includere un layout è utilizzare ViewStub
: una visualizzazione leggera che non occupa spazio per il layout fino a quando non la gonfi esplicitamente. Quando lo fai, include un
file di layout definito dal suo attributo android:layout
. Per maggiori informazioni sull'utilizzo di ViewStub
, leggi la pagina Caricare
visualizzazioni on demand.
<merge>
- Un elemento principale alternativo che non è tracciato nella gerarchia del layout. L'utilizzo di questo elemento come
elemento principale è utile quando sai che questo layout è posizionato in un layout
che contiene già l'elemento
View
principale appropriato per contenere gli elementi secondari
dell'elemento <merge>
.
Ciò è particolarmente utile se prevedi di includere questo layout in un altro file di layout utilizzando <include>
e questo layout non richiede un contenitore ViewGroup
diverso. Per ulteriori informazioni sull'unione dei layout, consulta Riutilizzare i layout con <include>.
Valore per android:id
Per il valore ID, in genere utilizzi il seguente formato di sintassi: "@+id/name"
, come mostrato nell'esempio seguente. Il
simbolo più, +
, indica che si tratta di un nuovo ID risorsa e che lo strumento aapt
crea
un nuovo numero intero di risorsa nella classe R.java
, se non esiste già.
<TextView android:id="@+id/nameTextbox"/>
Il nome nameTextbox
è ora un ID risorsa associato a questo elemento. Puoi quindi
fare riferimento all'elemento TextView
a cui è associato l'ID in Java:
Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
Questo codice restituisce l'oggetto TextView
.
Tuttavia, se hai già definito una risorsa ID e non è già utilizzata, puoi applicare questo ID a un elemento View
escludendo il simbolo più nel valore android:id
.
Valori per android:layout_height e
android:layout_width
I valori di altezza e larghezza sono espressi utilizzando una qualsiasi delle unità di dimensione supportate da Android (px, dp, sp, pt, in, mm) o con le seguenti parole chiave:
Valore | Descrizione |
match_parent |
Imposta la dimensione in modo che corrisponda a quella dell'elemento principale. Aggiunta nel livello API 8 per
deprecare fill_parent . |
wrap_content |
Consente di impostare la dimensione solo sulla dimensione richiesta per adattarsi ai contenuti di questo elemento. |
Elementi delle viste personalizzate
Puoi creare elementi View
e ViewGroup
personalizzati e applicarli al tuo layout come un elemento
di layout standard. Puoi anche specificare gli attributi supportati nell'elemento XML. Per ulteriori informazioni, consulta Creare componenti delle viste personalizzate.
- esempio:
- File XML salvato in
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>
Questo codice dell'applicazione carica il layout per un elemento Activity
nel
metodo onCreate()
:
-
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);
}
- vedi anche:
-
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2024-01-03 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Mancano le informazioni di cui ho bisogno"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Troppo complicato/troppi passaggi"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Obsoleti"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema di traduzione"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema relativo a esempi/codice"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Altra"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Facile da capire"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Il problema è stato risolto"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Altra"
}]
{
"last_modified": "Ultimo aggiornamento 2024-01-03 UTC.",
"state": ""
}