Konsep dan penerapan Jetpack Compose
Android Studio mendukung berbagai atribut XML dalam namespace tools
yang mengaktifkan fitur waktu desain, seperti tata letak mana yang harus ditampilkan dalam fragmen, atau
perilaku waktu kompilasi, seperti mode penyingkatan ,ama yang harus digunakan pada resource
XML Anda. Saat Anda membuat aplikasi, alat build menghapus atribut ini sehingga
tidak berdampak pada ukuran APK atau perilaku runtime Anda.
Untuk menggunakan atribut ini, tambahkan namespace tools ke elemen root setiap
file XML tempat Anda ingin menggunakannya, seperti ditunjukkan di sini:
<RootTag xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" >
Atribut penanganan error
Atribut berikut membantu menyembunyikan pesan peringatan lint:
tools:targetApi
Ditujukan untuk: Semua elemen
Digunakan oleh: Lint
Atribut ini memiliki fungsi yang sama dengan anotasi @TargetApi dalam kode Java. Atribut ini memungkinkan Anda menentukan API level (sebagai bilangan bulat atau nama kode)
yang mendukung elemen ini.
Atribut ini memberi tahu alat bahwa Anda yakin elemen ini dan setiap turunannya hanya
digunakan pada API level yang ditentukan atau yang lebih tinggi. Atribut ini mencegah lint mengirimkan
peringatan kepada Anda jika elemen tersebut atau atributnya tidak tersedia pada API level
yang Anda tentukan sebagai minSdkVersion Anda.
Misalnya, Anda dapat menggunakan atribut ini karena GridLayout hanya tersedia di API level 14 dan yang lebih tinggi, tetapi Anda tahu bahwa tata letak ini tidak digunakan dalam kode Anda untuk versi yang lebih rendah:
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:targetApi="14" >
(Namun, perhatikan bahwa sebaiknya Anda menggunakan GridLayout
dari support library).
Atribut tampilan waktu desain
Atribut berikut menentukan karakteristik tata letak yang hanya terlihat di pratinjau tata letak Android Studio.
tools: bukan android:
Ditujukan untuk: <View>
Digunakan oleh: Layout Editor Android Studio
Anda dapat menyisipkan data sampel ke pratinjau tata letak dengan menggunakan prefiks
tools:, bukan android:, dengan atribut <View> mana pun dari framework Android.
Ini berguna saat nilai atribut tidak diisikan hingga runtime, tetapi Anda ingin
melihat pengaruhnya di pratinjau tata letak.
Misalnya, jika nilai atribut android:text ditetapkan saat runtime, atau Anda ingin
melihat tata letak dengan nilai yang berbeda dengan nilai default, Anda dapat menambahkan
tools:text untuk menentukan teks khusus untuk pratinjau tata letak.
tools:text
menetapkan "Google Voice" sebagai nilai untuk pratinjau tata letak.Anda dapat menambahkan atribut namespace android:, yang digunakan
saat runtime, dan atribut tools: yang cocok, yang mengganti atribut runtime
di pratinjau tata letak saja.
Anda juga dapat menggunakan atribut tools: untuk mengurungkan setelan atribut
hanya untuk pratinjau tata letak. Misalnya, jika Anda memiliki FrameLayout dengan dua turunan,
tetapi Anda hanya ingin melihat satu turunan di pratinjau tata letak, Anda dapat menyetel salah satunya
agar tidak terlihat di pratinjau tata letak, seperti ditunjukkan di sini:
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="First" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Second" tools:visibility="invisible" />
Saat menggunakan Layout Editor dalam
tampilan desain, jendela Properties memungkinkan Anda mengedit beberapa atribut
tampilan waktu desain. Setiap atribut waktu desain ditunjukkan dengan
ikon kunci pas
di samping nama atribut untuk membedakannya dari
atribut sebenarnya dengan nama yang sama.
tools:context
Ditujukan untuk: Semua root <View>
Digunakan oleh: Lint, Layout Editor Android Studio
Atribut ini mendeklarasikan aktivitas
yang secara default dikaitkan dengan tata letak ini. Atribut ini mengaktifkan fitur di editor atau pratinjau tata letak yang memerlukan
pengetahuan tentang aktivitas, seperti tema tata letak di
pratinjau dan tempat pengendali onClick harus disisipkan yang dihasilkan dari
quickfix, seperti ditunjukkan dalam gambar 2.
onClick
hanya berfungsi jika Anda telah menetapkan tools:context.Anda dapat menentukan nama class aktivitas menggunakan prefiks titik yang sama seperti dalam file manifes (dengan mengecualikan nama paket lengkap).
Contoh:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
tools:itemCount
Ditujukan untuk: <RecyclerView>
Digunakan oleh: Layout Editor Android Studio
Untuk RecyclerView tertentu, atribut ini menentukan jumlah item yang harus dirender
Layout Editor di jendela Preview.
Contoh:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:itemCount="3"/>
tools:layout
Ditujukan untuk: <fragment>
Digunakan oleh: Layout Editor Android Studio
Atribut ini mendeklarasikan tata letak yang Anda inginkan untuk digambar oleh pratinjau tata letak di dalam fragmen karena pratinjau tata letak tidak dapat mengeksekusi kode aktivitas yang biasanya menerapkan tata letak.
Contoh:
<fragment android:name="com.example.main.ItemListFragment"
tools:layout="@layout/list_content" />
tools:listitem, tools:listheader, tools:listfooter
Ditujukan untuk: <AdapterView> (dan subclass seperti <ListView>)
Digunakan oleh: Layout Editor Android Studio
Atribut ini menentukan tata letak yang akan ditampilkan di pratinjau tata letak untuk item, header, dan footer dari sebuah daftar. Setiap kolom data dalam tata letak diisi dengan konten numerik, seperti "Item 1", sehingga item daftar tidak repetitif.
Contoh:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/sample_list_item"
tools:listheader="@layout/sample_list_header"
tools:listfooter="@layout/sample_list_footer" />
tools:showIn
Ditujukan untuk: Semua root <View> pada tata letak yang direferensikan oleh
<include>
Digunakan oleh: Layout Editor Android Studio
Atribut ini memungkinkan Anda menunjuk ke tata letak yang menggunakan tata letak ini menggunakan
<include>, sehingga Anda dapat
melihat pratinjau dan mengedit file ini seperti yang ditampilkan selagi disematkan di tata letak induknya.
Contoh:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:showIn="@layout/activity_main" />
Sekarang pratinjau tata letak menampilkan tata letak TextView ini saat muncul di
dalam tata letak
activity_main.
tools:menu
Ditujukan untuk: Semua root <View>
Digunakan oleh: Layout Editor Android Studio
Atribut ini menentukan menu yang ditampilkan oleh pratinjau tata letak
di panel aplikasi. Nilainya berupa satu atau beberapa ID menu,
yang dipisahkan koma, tanpa @menu/ atau prefiks ID apa pun dan tanpa
ekstensi .xml.
Contoh:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:menu="menu1,menu2" />
tools:minValue, tools:maxValue
Ditujukan untuk: <NumberPicker>
Digunakan oleh: Layout Editor Android Studio
Atribut ini menetapkan nilai minimum dan maksimum untuk tampilan NumberPicker.
Contoh:
<NumberPicker xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/numberPicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:minValue="0"
tools:maxValue="10" />
tools:openDrawer
Ditujukan untuk: <DrawerLayout>
Digunakan oleh: Layout Editor Android Studio
Atribut ini memungkinkan Anda membuka DrawerLayout di pratinjau.
Anda juga dapat mengubah cara Layout Editor merender tata letak dengan meneruskan salah satu nilai berikut:
Tabel 1. Nilai untuk mengubah cara
Layout Editor merender DrawerLayout
| Konstanta | Nilai | Deskripsi |
|---|---|---|
end | 800005 | Mengirim objek ke akhir penampungnya, tidak mengubah ukurannya. |
left | 3 | Mengirim objek ke kiri penampungnya, tidak mengubah ukurannya. |
right | 5 | Mengirim objek ke kanan penampungnya, tidak mengubah ukurannya. |
start | 800003 | Mengirim objek ke awal container-nya, tidak mengubah ukurannya. |
Contoh:
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:openDrawer="start" />
Resource "@tools:sample/*"
Ditujukan untuk: Semua tampilan yang mendukung teks UI atau gambar
Digunakan oleh: Layout Editor Android Studio
Atribut ini memungkinkan Anda memasukkan data placeholder atau gambar ke dalam tampilan. Misalnya, untuk menguji perilaku tata letak terhadap teks sebelum menyelesaikan teks UI untuk aplikasi, Anda dapat menggunakan teks placeholder sebagai berikut:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="@tools:sample/lorem" />
Tabel berikut mendeskripsikan jenis data placeholder yang dapat Anda masukkan ke dalam tata letak:
Tabel 2. Data placeholder untuk tata letak
| Nilai atribut | Deskripsi data placeholder |
|---|---|
@tools:sample/full_names |
Nama lengkap yang dihasilkan secara acak dari kombinasi
@tools:sample/first_names dan
@tools:sample/last_names |
@tools:sample/first_names |
Nama depan umum |
@tools:sample/last_names |
Nama belakang umum |
@tools:sample/cities |
Nama kota dari seluruh dunia |
@tools:sample/us_zipcodes |
Kode pos Amerika Serikat yang dihasilkan secara acak |
@tools:sample/us_phones |
Nomor telepon yang dihasilkan secara acak dengan format berikut:
(800) 555-xxxx |
@tools:sample/lorem |
Teks placeholder dalam bahasa Latin |
@tools:sample/date/day_of_week |
Data dan waktu acak untuk format yang ditentukan |
@tools:sample/date/ddmmyy | |
@tools:sample/date/mmddyy | |
@tools:sample/date/hhmm | |
@tools:sample/date/hhmmss | |
@tools:sample/avatars |
Vektor drawable yang dapat Anda gunakan sebagai avatar profil |
@tools:sample/backgrounds/scenic |
Gambar yang dapat Anda gunakan sebagai latar belakang |