Resource tata letak

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

lokasi file:
res/layout/filename.xml
Nama file akan digunakan sebagai ID resource.
jenis data resource terhimpun:
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 utama dapat berupa elemen ViewGroup, View, atau <merge>, tetapi hanya boleh ada satu elemen utama dan harus berisi atribut xmlns:android dengan ruang nama android seperti yang ditunjukkan.

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

Anda tidak boleh berasumsi bahwa setiap derivasi ViewGroup akan menerima View bertingkat. Beberapa ViewGroup merupakan penerapan 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. Lihat selengkapnya tentang nilai untuk android:id di bawah.
android:layout_height
Dimensi atau kata kunci. Wajib. Tinggi grup, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Lihat nilai yang valid di bawah.
android:layout_width
Dimensi atau kata kunci. Wajib. Lebar grup, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Lihat nilai yang valid di bawah.

Atribut lainnya didukung oleh class dasar ViewGroup, dan ada lebih banyak lagi yang didukung oleh setiap penerapan . 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. Lihat selengkapnya tentang nilai untuk android:id di bawah.
android:layout_height
Dimensi atau kata kunci. Wajib. Tinggi elemen, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Lihat nilai yang valid di bawah.
android:layout_width
Dimensi atau kata kunci. Wajib. Lebar elemen, sebagai nilai dimensi (atau resource dimensi) atau kata kunci ("match_parent" atau "wrap_content"). Lihat nilai yang valid di bawah.

Atribut lainnya didukung oleh class dasar View, dan ada lebih banyak lagi yang didukung oleh setiap penerapan . Baca Tata Letak untuk informasi selengkapnya. 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 utama dalam tata letak yang disertakan, yang kemudian akan menggantikan atribut yang telah ditentukan dalam elemen utama.

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 ini cukup ringan dan tidak menggunakan ruang tata letak sampai Anda memperluasnya secara eksplisit, yang pada titik itu tampilan akan menyertakan file tata letak yang ditentukan oleh atribut android:layout miliknya. Untuk informasi selengkapnya tentang penggunaan ViewStub, baca Memuat Tampilan Sesuai Permintaan.

<merge>
Elemen utama alternatif yang tidak digambar dalam hierarki tata letak. Menggunakannya sebagai elemen utama akan berguna jika Anda tahu bahwa tata letak ini akan disertakan ke tata letak yang sudah berisi Tampilan 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 informasi selengkapnya tentang cara menggabungkan tata letak, baca Menggunakan kembali Tata Letak dengan <include/>.

Nilai untuk android:id

Untuk nilai ID, Anda biasanya harus menggunakan bentuk sintaksis ini: "@+id/name". Simbol plus, +, menunjukkan bahwa ini adalah ID resource baru dan fitur aapt akan membuat bilangan bulat resource baru dalam class R.java, jika belum ada. Contoh:

    <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 dapat dinyatakan menggunakan satuan 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 sendiri elemen kustom View dan ViewGroup 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 mempelajari lebih lanjut, lihat panduan developer tentang Komponen 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 berikut akan 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: