1page.title=Mempertahankan Kompatibilitas
2
3@jd:body
4
5<div id="tb-wrapper">
6<div id="tb">
7<h2>Pelajaran ini mengajarkan Anda cara</h2>
8<ol>
9  <li><a href="#Theme">Mendefinisikan Gaya Alternatif</a></li>
10  <li><a href="#Layouts">Menyediakan Layout Alternatif</a></li>
11  <li><a href="#SupportLib">Menggunakan Support Library</a></li>
12  <li><a href="#CheckVersion">Memeriksa Versi Sistem</a></li>
13</ol>
14<h2>Anda juga harus membaca</h2>
15<ul>
16  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
17  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
18</ul>
19</div>
20</div>
21
22
23<p>Sebagian fitur desain bahan seperti tema bahan dan transisi aktivitas custom
24hanya tersedia pada Android 5.0 (API level 21) ke atas. Akan tetapi, Anda bisa mendesain aplikasi untuk menggunakan
25fitur-fitur ini saat dijalankan pada perangkat yang mendukung desain bahan dan tetap kompatibel
26dengan perangkat yang menjalankan rilis Android sebelumnya.</p>
27
28
29<h2 id="Theme">Mendefinisikan Gaya Alternatif</h2>
30
31<p>Anda bisa mengonfigurasi aplikasi untuk menggunakan tema bahan pada perangkat yang mendukungnya dan mengembalikan
32ke tema lama pada perangkat yang menjalankan versi Android terdahulu:</p>
33
34<ol>
35<li>Definisikan tema yang mewarisi tema lama (seperti Holo) di
36    <code>res/values/styles.xml</code>.</li>
37<li>Definisikan tema bernama sama yang mewarisi tema bahan di
38    <code>res/values-v21/styles.xml</code>.</li>
39<li>Atur tema ini sebagai tema aplikasi Anda dalam file manifes.</li>
40</ol>
41
42<p class="note"><strong>Catatan:</strong>
43Jika aplikasi Anda menggunakan tema bahan namun tidak menyediakan tema alternatif dengan cara ini,
44aplikasi itu tidak akan berjalan pada versi Android sebelum 5.0.
45</p>
46
47
48<h2 id="Layouts">Menyediakan Layout Alternatif</h2>
49
50<p>Jika layout yang Anda desain sesuai dengan panduan desain bahan tidak menggunakan salah satu
51atribut XML baru yang diperkenalkan di Android 5.0 (API level 21), layout itu akan berfungsi pada
52versi Android sebelumnya. Jika tidak, Anda bisa menyediakan layout alternatif. Anda juga bisa menyediakan
53layout alternatif untuk menyesuaikan cara aplikasi ditampilkan pada versi Android terdahulu.</p>
54
55<p>Buatlah file layout untuk Android 5.0 (API level 21) dalam <code>res/layout-v21/</code> dan
56file layout alternatif untuk versi Android terdahulu dalam <code>res/layout/</code>.
57Misalnya, <code>res/layout/my_activity.xml</code> adalah layout alternatif untuk
58<code>res/layout-v21/my_activity.xml</code>.</p>
59
60<p>Untuk menghindari duplikasi kode, definisikan gaya dalam <code>res/values/</code>, modifikasi
61gaya di <code>res/values-v21/</code> untuk API baru, dan gunakan pewarisan gaya, dengan mendefinisikan
62gaya dasar di <code>res/values/</code> dan mewarisi gaya di <code>res/values-v21/</code>.</p>
63
64
65<h2 id="SupportLib">Menggunakan Support Library</h2>
66
67<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 Support Library</a>
68r21 ke atas menyertakan fitur desain bahan berikut:</p>
69
70<ul>
71<li><a href="{@docRoot}training/material/theme.html">Gaya desain bahan</a> untuk beberapa widget sistem
72    bila Anda menerapkan salah satu tema <code>Theme.AppCompat</code>.</li>
73<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atribut tema palet warna</a>
74    dalam tema <code>Theme.AppCompat</code>.</li>
75<li>Widget {@link android.support.v7.widget.RecyclerView} untuk <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">
76menampilkan kumpulan data.</a></li>
77<li>Widget {@link android.support.v7.widget.CardView} untuk <a href="{@docRoot}training/material/lists-cards.html#CardView">membuat kartu</a>.</li>
78<li>Kelas {@link android.support.v7.graphics.Palette} untuk <a href="{@docRoot}training/material/drawables.html#ColorExtract">mengekstrak warna mencolok dari
79    gambar</a>.</li>
80</ul>
81
82<h3>Widget sistem</h3>
83
84<p>Tema-tema <code>Theme.AppCompat</code> menyediakan gaya desain bahan untuk widget ini:</p>
85
86<ul>
87  <li>{@link android.widget.EditText}</li>
88  <li>{@link android.widget.Spinner}</li>
89  <li>{@link android.widget.CheckBox}</li>
90  <li>{@link android.widget.RadioButton}</li>
91  <li>{@link android.support.v7.widget.SwitchCompat}</li>
92  <li>{@link android.widget.CheckedTextView}</li>
93</ul>
94
95<h3>Palet Warna</h3>
96
97<p>Untuk memperoleh gaya desain bahan dan menyesuaikan palet warna dengan Android v7 Support
98Library, terapkan salah satu tema <code>Theme.AppCompat</code>:</p>
99
100<pre>
101&lt;!-- extend one of the Theme.AppCompat themes -->
102&lt;style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
103    &lt;!-- customize the color palette -->
104    &lt;item name="colorPrimary">@color/material_blue_500&lt;/item>
105    &lt;item name="colorPrimaryDark">@color/material_blue_700&lt;/item>
106    &lt;item name="colorAccent">@color/material_green_A200&lt;/item>
107&lt;/style>
108</pre>
109
110<h3>Daftar dan Kartu</h3>
111
112<p>Widget {@link android.support.v7.widget.RecyclerView} dan {@link
113android.support.v7.widget.CardView} tersedia di versi Android terdahulu melalui
114Android v7 Support Library dengan pembatasan ini:</p>
115<ul>
116<li>{@link android.support.v7.widget.CardView} memundurkan ke implementasi bayangan terprogram
117    dengan menggunakan pengisi tambahan.</li>
118<li>{@link android.support.v7.widget.CardView} tidak memangkas tampilan anaknya yang berpotongan
119    dengan sudut melengkung.</li>
120</ul>
121
122
123<h3>Dependensi</h3>
124
125<p>Untuk menggunakan fitur-fitur ini di versi Android sebelum 5.0 (API level 21), sertakan
126Android v7 Support Library dalam proyek Anda sebagai <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependensi Gradle</a>:</p>
127
128<pre>
129dependencies {
130    compile 'com.android.support:appcompat-v7:21.0.+'
131    compile 'com.android.support:cardview-v7:21.0.+'
132    compile 'com.android.support:recyclerview-v7:21.0.+'
133}
134</pre>
135
136
137<h2 id="CheckVersion">Memeriksa Versi Sistem</h2>
138
139<p>Fitur berikut hanya tersedia di Android 5.0 (API level 21) ke atas:</p>
140
141<ul>
142<li>Transisi aktivitas</li>
143<li>Umpan balik sentuh</li>
144<li>Animasi membuka</li>
145<li>Animasi berbasis path</li>
146<li>Drawable vektor</li>
147<li>Pewarnaan drawable</li>
148</ul>
149
150<p>Untuk menjaga kompatibilitas dengan versi Android terdahulu, periksa {@link
151android.os.Build.VERSION#SDK_INT version} sistem saat runtime sebelum Anda memanggil API untuk salah satu
152fitur ini:</p>
153
154<pre>
155// Check if we're running on Android 5.0 or higher
156if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
157    // Call some material design APIs here
158} else {
159    // Implement this feature without material design
160}
161</pre>
162
163<p class="note"><strong>Catatan:</strong> Untuk menetapkan versi Android yang didukung aplikasi Anda,
164gunakan atribut <code>android:minSdkVersion</code> dan <code>android:targetSdkVersion</code>
165dalam file manifes. Untuk menggunakan fitur desain bahan di Android 5.0, atur
166atribut <code>android:targetSdkVersion</code> ke <code>21</code>. Untuk informasi selengkapnya, lihat
167panduan <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">API
168&lt;uses-sdk&gt;</a>.</p>
169