Resource tata letak

Resource tata letak menentukan arsitektur untuk UI dalam Activity atau komponen UI.

lokasi file:
res/layout/filename.xml
Nama file digunakan sebagai ID resource.
jenis data resource yang dihimpun:
Penunjuk resource ke resource View (atau subclass)
referensi resource:
Di Java: R.layout.filename
Dalam XML: @[package:]layout/filename
sintaksis:
<?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>

Catatan: Elemen root dapat berupa ViewGroup, View, atau elemen <merge>, tetapi hanya boleh ada satu elemen root dan harus berisi atribut xmlns:android dengan namespace android seperti ditunjukkan dalam contoh sintaksis sebelumnya.

elemen:
<ViewGroup>
Penampung untuk elemen View lainnya. Terdapat banyak jenis objek ViewGroup, dan masing-masing memungkinkan Anda menentukan tata letak elemen turunan dengan cara yang berbeda. Beberapa jenis objek ViewGroup menyertakan LinearLayout, RelativeLayout, dan FrameLayout.

Jangan berasumsi bahwa setiap derivasi ViewGroup akan menerima tampilan bertingkat. Beberapa grup tampilan adalah implementasi class AdapterView, yang menentukan turunannya hanya dari Adapter.

Atribut:

android:id
ID Resource. Nama resource unik untuk elemen, yang dapat digunakan untuk mendapatkan referensi ke ViewGroup dari aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat bagian Nilai untuk android:id.
android:layout_height
Dimensi atau kata kunci. Wajib. Tinggi grup, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Untuk mengetahui informasi selengkapnya, lihat bagian Nilai untuk android:layout_height dan android:layout_width.
android:layout_width
Dimensi atau kata kunci. Wajib. Lebar grup, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Untuk mengetahui informasi selengkapnya, lihat bagian Nilai untuk android:layout_height dan android:layout_width.

Class dasar ViewGroup mendukung lebih banyak atribut, dan banyak lagi yang didukung oleh setiap penerapan ViewGroup. Untuk referensi tentang semua atribut yang tersedia, lihat dokumentasi referensi yang terkait untuk class ViewGroup, misalnya Atribut XML LinearLayout.

<View>
Komponen UI individual, secara umum disebut sebagai widget. Beberapa jenis objek View menyertakan TextView, Button, dan CheckBox.

Atribut:

android:id
ID Resource. Nama resource unik untuk elemen, yang dapat digunakan untuk mendapatkan referensi ke View dari aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat bagian Nilai untuk android:id.
android:layout_height
Dimensi atau kata kunci. Wajib. Tinggi elemen, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Untuk mengetahui informasi selengkapnya, lihat bagian Nilai untuk android:layout_height dan android:layout_width.
android:layout_width
Dimensi atau kata kunci. Wajib. Lebar elemen, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Untuk mengetahui informasi selengkapnya, lihat bagian Nilai untuk android:layout_height dan android:layout_width.

Class dasar View mendukung lebih banyak atribut, dan banyak lagi yang didukung oleh setiap penerapan View. Untuk mengetahui informasi selengkapnya, baca Tata Letak. Untuk referensi tentang semua atribut yang tersedia, lihat dokumentasi referensi yang terkait, misalnya Atribut XML TextView.

<requestFocus>
Elemen apa pun yang merepresentasikan objek View dapat menyertakan elemen kosong ini, yang memberikan fokus awal ke induknya di layar. Hanya boleh ada satu elemen ini dalam setiap file.
<include>
Menyertakan file tata letak ke dalam tata letak ini.

Atribut:

layout
Resource tata letak. Wajib. Referensi ke resource tata letak.
android:id
ID Resource. Mengganti ID yang diberikan ke tampilan utama dalam tata letak yang disertakan.
android:layout_height
Dimensi atau kata kunci. Mengganti tinggi yang diberikan ke tampilan utama dalam tata letak yang disertakan. Hanya efektif jika android:layout_width juga dideklarasikan.
android:layout_width
Dimensi atau kata kunci. Mengganti lebar yang diberikan ke tampilan utama dalam tata letak yang disertakan. Hanya efektif jika android:layout_height juga dideklarasikan.

Anda dapat menyertakan atribut tata letak lain dalam <include> yang didukung oleh elemen root dalam tata letak yang disertakan, dan kemudian menggantikan atribut yang telah ditentukan dalam elemen root.

Perhatian: Jika ingin mengganti atribut tata letak menggunakan tag <include>, Anda harus mengganti android:layout_height dan android:layout_width agar atribut tata letak lainnya dapat diterapkan.

Cara lain untuk menyertakan tata letak adalah dengan menggunakan ViewStub: tampilan ringan yang tidak menggunakan ruang tata letak sampai Anda memperluasnya secara eksplisit. Saat Anda melakukannya, kode tersebut akan menyertakan file tata letak yang ditentukan oleh atribut android:layout miliknya. Untuk mengetahui informasi selengkapnya tentang penggunaan ViewStub, baca Memuat tampilan sesuai permintaan.

<merge>
Elemen root alternatif yang tidak digambar dalam hierarki tata letak. Menggunakannya sebagai elemen root akan berguna jika Anda tahu bahwa tata letak ini akan disertakan ke tata letak yang sudah berisi View induk yang sesuai agar memuat turunan elemen <merge>.

Secara khusus, hal ini berguna ketika Anda berencana untuk menyertakan tata letak ini dalam file tata letak lain menggunakan <include> dan tata letak ini tidak memerlukan penampung ViewGroup yang berbeda. Untuk mengetahui informasi cara menggabungkan tata letak selengkapnya, baca Menggunakan kembali tata letak dengan <include>.

Nilai untuk android:id

Untuk nilai ID, Anda biasanya menggunakan formulir sintaksis ini: "@+id/name", seperti ditunjukkan pada contoh berikut. Simbol plus, +, menunjukkan bahwa ini adalah ID resource baru, dan alat aapt akan membuat bilangan bulat resource baru dalam class R.java, jika belum ada.

<TextView android:id="@+id/nameTextbox"/>

Nama nameTextbox sekarang menjadi ID resource yang dilampirkan ke elemen ini. Anda kemudian dapat merujuk ke TextView yang terkait dengan ID tersebut di Java:

Kotlin

val textView: TextView? = findViewById(R.id.nameTextbox)

Java

TextView textView = findViewById(R.id.nameTextbox);

Kode ini akan mengembalikan objek TextView.

Namun, jika sudah menentukan resource ID, dan resource ini belum digunakan, Anda dapat menerapkan ID tersebut ke elemen View dengan mengecualikan simbol plus dalam nilai android:id.

Nilai untuk android:layout_height dan android:layout_width:

Nilai tinggi dan lebar dinyatakan menggunakan salah satu unit dimensi yang didukung oleh Android (px, dp, sp, pt, in, mm) atau dengan kata kunci berikut:

NilaiDeskripsi
match_parent Menyetel dimensi agar sesuai dengan milik elemen induk. Ditambahkan pada API level 8 untuk menghentikan fill_parent.
wrap_content Menyetel dimensi ke ukuran yang hanya diperlukan agar sesuai dengan konten elemen ini.

Elemen tampilan kustom

Anda dapat membuat elemen View dan ViewGroup kustom, lalu menerapkannya ke tata letak dengan cara yang sama seperti elemen tata letak standar. Anda juga dapat menetapkan atribut yang didukung dalam elemen XML. Untuk mengetahui informasi selengkapnya, lihat Membuat komponen tampilan kustom.

contoh:
File XML yang disimpan di 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>

Kode aplikasi ini memuat tata letak untuk Activity dalam metode 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);
}
lihat juga: