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<!-- extend one of the Theme.AppCompat themes --> 102<style name="Theme.MyTheme" parent="Theme.AppCompat.Light"> 103 <!-- customize the color palette --> 104 <item name="colorPrimary">@color/material_blue_500</item> 105 <item name="colorPrimaryDark">@color/material_blue_700</item> 106 <item name="colorAccent">@color/material_green_A200</item> 107</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<uses-sdk></a>.</p> 169