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'attributoxmlns:android
con lo spazio dei nomiandroid
, come mostrato nell'esempio di sintassi precedente. - :
-
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 strumentoaapt
crea un nuovo numero intero di risorsa nella classeR.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'elementoTextView
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 valoreandroid: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
eViewGroup
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 metodoonCreate()
: -
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: