Una risorsa di layout definisce l'architettura dell'interfaccia utente in un Activity
o un
di una UI.
- percorso del file:
- Il nome file viene utilizzato come ID risorsa.
- tipo di dati della risorsa compilato:
- Puntatore di risorsa a una risorsa
View
(o sottoclasse) - riferimento della risorsa:
-
In Java:
R.layout.filename
In XML:@[package:]layout/filename
- sintassi:
-
<?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 un
ViewGroup
,View
o<merge>
, ma possono esserci solo un elemento radice e deve contenere l'attributoxmlns:android
conandroid
come mostrato nell'esempio di sintassi precedente. - elementi:
-
Valore per android:id
Per il valore ID, in genere viene utilizzato questo formato di sintassi:
"@+id/name"
, come mostrato nell'esempio seguente. La il simbolo più,+
, indica che si tratta di un nuovo ID risorsa e lo strumentoaapt
crea Un nuovo numero intero della 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 fai riferimento alTextView
a cui l'ID è associato 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, che non è già utilizzato, puoi applicare questo ID a un elemento
View
escludendo nel valoreandroid:id
.Valori per android:layout_height e android:layout_width
I valori di altezza e larghezza sono espressi utilizzando uno qualsiasi dei dimensione unità supportate da Android (px, dp, sp, pt, in, mm) o con le seguenti parole chiave:
Valore Descrizione match_parent
Consente di impostare la dimensione in modo che corrisponda a quella dell'elemento principale. Aggiunto nel livello API 8 a ritira fill_parent
.wrap_content
Imposta la dimensione solo sulla dimensione richiesta per adattarsi ai contenuti di questo elemento. Elementi di visualizzazione personalizzati
Puoi creare
View
eViewGroup
personalizzati e applicarli al tuo layout come faresti con un layout standard . Puoi anche specificare gli attributi supportati nell'elemento XML. Per ulteriori informazioni, consulta Creare componenti vista personalizzati. - esempio:
- File XML salvato alle ore
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
Activity
in 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:
res/layout/filename.xml