Home | History | Annotate | Download | only in material
      1 page.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
     24 hanya tersedia pada Android 5.0 (API level 21) ke atas. Akan tetapi, Anda bisa mendesain aplikasi untuk menggunakan
     25 fitur-fitur ini saat dijalankan pada perangkat yang mendukung desain bahan dan tetap kompatibel
     26 dengan 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
     32 ke 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>
     43 Jika aplikasi Anda menggunakan tema bahan namun tidak menyediakan tema alternatif dengan cara ini,
     44 aplikasi 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
     51 atribut XML baru yang diperkenalkan di Android 5.0 (API level 21), layout itu akan berfungsi pada
     52 versi Android sebelumnya. Jika tidak, Anda bisa menyediakan layout alternatif. Anda juga bisa menyediakan
     53 layout 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
     56 file layout alternatif untuk versi Android terdahulu dalam <code>res/layout/</code>.
     57 Misalnya, <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
     61 gaya di <code>res/values-v21/</code> untuk API baru, dan gunakan pewarisan gaya, dengan mendefinisikan
     62 gaya 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>
     68 r21 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">
     76 menampilkan 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
     98 Library, 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
    113 android.support.v7.widget.CardView} tersedia di versi Android terdahulu melalui
    114 Android 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
    126 Android v7 Support Library dalam proyek Anda sebagai <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependensi Gradle</a>:</p>
    127 
    128 <pre>
    129 dependencies {
    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
    151 android.os.Build.VERSION#SDK_INT version} sistem saat runtime sebelum Anda memanggil API untuk salah satu
    152 fitur ini:</p>
    153 
    154 <pre>
    155 // Check if we're running on Android 5.0 or higher
    156 if (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,
    164 gunakan atribut <code>android:minSdkVersion</code> dan <code>android:targetSdkVersion</code>
    165 dalam file manifes. Untuk menggunakan fitur desain bahan di Android 5.0, atur
    166 atribut <code>android:targetSdkVersion</code> ke <code>21</code>. Untuk informasi selengkapnya, lihat
    167 panduan <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">API
    168 &lt;uses-sdk&gt;</a>.</p>
    169