Android Studio mendukung berbagai atribut XML dalam namespace tools
yang mengaktifkan fitur waktu desain (seperti tata letak yang harus ditampilkan dalam fragmen) atau
perilaku waktu kompilasi (seperti mode penyingkatan 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:ignore
Ditujukan untuk: Semua elemen
Digunakan oleh: Lint
Atribut ini menerima daftar yang dipisahkan koma untuk ID masalah lint yang Anda inginkan untuk diabaikan oleh alat pada elemen ini atau turunannya.
Misalnya, Anda dapat meminta alat agar mengabaikan error MissingTranslation
:
<string name="show_all_apps" tools:ignore="MissingTranslation">All</string>
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 integer atau nama kode)
yang mendukung elemen ini.
Atribut ini memberi tahu alat bahwa Anda yakin elemen ini (dan setiap turunannya) hanya
akan 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 pada
API level 14 dan yang lebih baru, tetapi Anda tahu bahwa tata letak ini tidak digunakan
pada versi yang lebih lama:
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:targetApi="14" >
Namun, sebaiknya Anda menggunakan GridLayout
dari
library dukungan.
tools:locale
Ditujukan untuk: <resources>
Digunakan oleh: Lint, editor Android Studio
Atribut ini memberi tahu alat tentang bahasa/lokal default untuk resource dalam
elemen <resources>
yang ditentukan (jika tidak, alat akan
menganggap default-nya adalah bahasa Inggris) untuk menghindari peringatan dari pemeriksa ejaan.
Nilainya harus merupakan
penentu lokal yang valid.
Misalnya, Anda dapat menambahkan atribut ini ke file values/strings.xml
(nilai string
default) untuk menunjukkan bahwa bahasa yang digunakan untuk string default adalah
bahasa Spanyol, bukan bahasa Inggris:
<resources xmlns:tools="http://schemas.android.com/tools"
tools:locale="es">
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 terlebih dahulu, 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.
Gambar 1. Atribut 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 membatalkan setelan suatu atribut hanya untuk
pratinjau tata letak. Misalnya, jika Anda memiliki FrameLayout
dengan beberapa 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 di tampilan
desain, jendela Properties juga 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 pada editor atau pratinjau tata letak yang memerlukan
pengetahuan tentang aktivitas, seperti tema tata letak yang harus ada dalam
pratinjau dan tempat pengendali onClick
harus disisipkan saat Anda membuatnya
dari quickfix (gambar 2).
Gambar 2. Quickfix untuk atribut 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" >
Tips: Anda juga dapat memilih tema untuk pratinjau tata letak dari toolbar Layout Editor.
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:
<android.support.v7.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 <View>
root 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 sebagai include, sehingga Anda dapat melihat pratinjau (dan mengedit) file ini saat ditampilkan tersemat dalam 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 perlu ditampilkan oleh pratinjau tata letak
di panel aplikasi. Nilainya dapat 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
pada panel Preview di
Layout Editor. Anda juga dapat mengubah cara Layout Editor merender tata letak dengan
meneruskan salah satu nilai berikut:
Konstanta | Nilai | Deskripsi |
---|---|---|
end | 800005 | Mengirim objek ke akhir penampungnya, tidak mengubah ukurannya. |
left | 3 | Mengirim objek ke kiri container-nya, tidak mengubah ukurannya. |
right | 5 | Mengirim objek ke kanan container-nya, tidak mengubah ukurannya. |
start | 800003 | Mengirim objek ke awal container-nya, tidak mengubah ukurannya. |
Contoh:
<android.support.v4.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, jika Anda ingin menguji perilaku tata letak Anda terhadap teks, tetapi Anda belum memiliki teks UI final untuk aplikasi, Anda dapat menggunakan teks placeholder seperti 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.
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-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 yang diperoleh dari 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 yang dapat digambar yang bisa Anda gunakan sebagai avatar profil. |
@tools:sample/backgrounds/scenic |
Gambar yang dapat digunakan sebagai latar belakang. |
Atribut penyingkatan resource
Atribut berikut memungkinkan Anda mengaktifkan pemeriksaan referensi yang ketat dan mendeklarasikan apakah akan mempertahankan atau menghapus resource tertentu saat menggunakan penyingkatan resource.
Untuk mengaktifkan penyingkatan resource, tetapkan properti shrinkResources
ke true
dalam file build.gradle
(beserta
minifyEnabled
untuk penyingkatan kode).
Contoh:
Groovy
android { ... buildTypes { release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }
Kotlin
android { ... buildTypes { getByName("release") { shrinkResources = true minifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) } } }
tools:shrinkMode
Ditujukan untuk: <resources>
Digunakan oleh: Alat build dengan penyingkatan resource
Atribut ini memungkinkan Anda menentukan apakah alat build harus menggunakan
"mode aman" (menjalankan dengan aman dan mempertahankan semua resource yang dikutip
secara eksplisit, dan
yang mungkin direferensikan secara dinamis dengan panggilan ke
Resources.getIdentifier()
)
atau "mode ketat" (hanya mempertahankan resource yang secara eksplisit dikutip dalam kode atau resource lainnya).
Defaultnya adalah menggunakan mode aman (shrinkMode="safe"
). Untuk menggunakan mode
ketat, tambahkan shrinkMode="strict"
ke tag <resources>
seperti ditunjukkan di sini:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:shrinkMode="strict" />
Jika mengaktifkan mode ketat, Anda mungkin perlu menggunakan tools:keep
untuk mempertahankan resource yang telah dihapus, tetapi sebenarnya Anda inginkan, dan menggunakan
tools:discard
untuk menghapus lebih banyak lagi resource secara eksplisit.
Untuk informasi selengkapnya, lihat Menyingkat resource.
tools:keep
Ditujukan untuk: <resources>
Digunakan oleh: Alat build dengan penyingkatan resource
Saat menggunakan penyingkatan resource untuk menghapus resource yang tidak terpakai, atribut ini
memungkinkan Anda menentukan resource yang perlu dipertahankan (biasanya karena resource
tersebut direferensikan secara tidak langsung saat runtime, seperti dengan meneruskan nama resource
yang dihasilkan secara dinamis ke
Resources.getIdentifier()
).
Untuk menggunakan, buat file XML di direktori resource (misalnya di
res/raw/keep.xml
) dengan tag <resources>
,
dan tentukan setiap resource yang perlu dipertahankan dalam atribut tools:keep
sebagai
daftar yang dipisahkan koma. Anda dapat menggunakan tanda bintang sebagai karakter pengganti.
Contoh:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/used_1,@layout/used_2,@layout/*_3" />
Untuk informasi selengkapnya, lihat Menyingkat resource.
tools:discard
Ditujukan untuk: <resources>
Digunakan oleh: Alat build dengan penyingkatan resource
Saat menggunakan penyingkatan resource untuk menghilangkan resource yang tidak terpakai, atribut ini memungkinkan Anda menentukan resource yang ingin dihapus secara manual (biasanya karena resource tersebut sebenarnya direferensikan, tetapi dengan cara yang tidak memengaruhi aplikasi Anda, atau karena plugin Gradle salah menyimpulkan bahwa resource tersebut direferensikan).
Untuk menggunakan, buat file XML di direktori resource (misalnya, di
res/raw/keep.xml
) dengan tag <resources>
,
dan tentukan setiap resource yang perlu dipertahankan dalam atribut tools:discard
sebagai
daftar yang dipisahkan koma. Anda dapat menggunakan tanda bintang sebagai karakter pengganti.
Contoh:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:discard="@layout/unused_1" />
Untuk informasi selengkapnya, lihat Menyingkat resource.