The Android Developer Challenge is back! Submit your idea before December 2.

Panduan Fitur Support Library

Catatan: Dengan dirilisnya Android 9.0 (API level 28), ada library dukungan versi baru yang disebut AndroidX, yang merupakan bagian dari Jetpack. Library AndroidX memuat library dukungan yang ada dan juga menyertakan komponen Jetpack terbaru.

Anda dapat terus menggunakan library dukungan ini. Artefak historis (versi 27 dan yang lebih lama, serta yang dipaketkan sebagai android.support.*) akan tetap tersedia di Google Maven. Namun, semua pengembangan library baru akan terjadi di library AndroidX.

Kami merekomendasikan penggunaan library AndroidX di semua project baru. Sebaiknya Anda juga mempertimbangkan untuk memigrasikan project yang ada ke AndroidX.

Library Dukungan menyediakan aneka class untuk membuat aplikasi, dari komponen aplikasi dasar, widget antarmuka pengguna, penanganan media, hingga komponen aplikasi TV. Banyak dari class tersebut yang kompatibel untuk diimplementasikan pada versi sebelumnya, tetapi beberapa di antaranya merupakan fitur yang sepenuhnya baru.

Dokumen ini menyajikan ringkasan tentang berbagai kategori penting fitur yang tersedia pada library dukungan, dan class khusus yang perlu diketahui saat membuat aplikasi.

Untuk informasi cara menambahkan kode library dukungan ke project pengembangan aplikasi Anda, lihat Penyiapan Library Dukungan. Untuk informasi cara menyertakan paket library dukungan tertentu dalam project Anda, lihat Paket Library Dukungan.

Komponen Aplikasi

Class Library Dukungan di bawah ini mendukung implementasi yang kompatibel dengan versi lama untuk sejumlah fitur platform inti dan penting. Implementasi tersebut biasanya memperluas kapabilitas versi class sebelumnya untuk menangani metode dan fitur baru yang ditambahkan dalam rilis platform yang lebih baru. Beberapa class berikut merupakan implementasi statis lengkap dari API framework.

  • Aktivitas
    • ActivityCompat - Mencakup implementasi yang kompatibel dengan versi lama untuk sejumlah fitur aktivitas penting terbaru, seperti Izin Runtime dan transisi animasi.
    • FragmentActivity - Mencakup implementasi yang kompatibel dengan versi lama untuk sejumlah aktivitas agar dapat menggunakan versi library dukungan Fragment dan API Loader.
    • AppCompatActivity - Menambahkan tema warna Material, pewarnaan widget, dan dukungan kolom aplikasi ke perangkat versi lama. Penggunaan class ini mengharuskan penggunaan tema Theme.AppCompat untuk menciptakan presentasi visual yang konsisten.
  • Fragment - Menyediakan implementasi tersendiri untuk class framework Fragment. Class ini harus digunakan dengan FragmentActivity.
  • ContextCompat - Menyediakan dukungan untuk berbagai fitur yang diperkenalkan dalam rilis class Context yang lebih baru, termasuk dukungan izin, akses file, dan informasi warna.
  • IntentCompat - Menyediakan dukungan untuk berbagai fitur yang diperkenalkan dalam rilis class Intent yang lebih baru, termasuk metode untuk memilih dan memulai kegiatan tertentu.
  • Loader - Menyediakan implementasi statis dari class framework Loader, dan merupakan class dasar untuk class dukungan AsyncTaskLoader dan CursorLoader.
  • Preference - Class ini dan subclass-nya menyediakan implementasi antarmuka pengguna setelan aplikasi sedemikian rupa sehingga kompatibel dengan versi lama.
  • ContentResolverCompat - Menyediakan dukungan untuk berbagai fitur yang diperkenalkan dalam rilis class ContentResolver yang lebih baru, khususnya metode query() dengan dukungan untuk membatalkan kueri yang sedang berlangsung.

Antarmuka Pengguna

Class library dukungan berikut menyediakan implementasi widget dan perilaku antarmuka pengguna utama, dan membantu Anda membuat antarmuka aplikasi yang lebih modern pada perangkat generasi lebih awal. Beberapa dari widget ini hanya tersedia melalui library dukungan.

Container tata letak dengan kegunaan umum

Class dukungan di bawah ini menyediakan container antarmuka pengguna yang dapat disesuaikan untuk berbagai kasus penggunaan desain.

  • RecyclerView - Membuat tata letak untuk menampilkan daftar berukuran panjang, dengan strategi untuk menghindari pemakaian memori yang tinggi. Dengan class ini, Anda dapat membuat jendela terbatas untuk menampilkan set data yang lebih besar, sehingga menghindari penggunaan memori yang tinggi saat menampilkan daftar. Untuk informasi lebih lanjut tentang penggunaan RecyclerView, lihat panduan Tampilan Recycler.
  • ViewPager - Menyediakan tata letak yang memungkinkan pengguna membalik halaman data ke kiri dan ke kanan.
  • GridLayout - Menyediakan tata letak beserta turunannya dalam petak persegi panjang, yang mendukung sembarang rentang sel yang berdekatan dan distribusi ruang yang fleksibel. Class ini kompatibel dengan class GridLayout versi lama, yang diperkenalkan pada Android 4.0 (API level 14).
  • PercentFrameLayout dan PercentRelativeLayout - Menyediakan tata letak yang mendukung dimensi dan margin berbasis persentase untuk tampilan turunan dan kontennya.

Catatan: Class ViewPager, RecyclerView, PercentFrameLayout, dan PercentRelativeLayout hanya tersedia dari Support Library.

Container tata letak dengan kegunaan khusus

Class dukungan ini menyediakan implementasi yang kompatibel untuk pola tata letak tertentu, seperti tampilan panel samping yang dapat ditarik dari tepi layar, panel geser, dan daftar bersarang dalam daftar.

  • DrawerLayout - Membuat tata letak yang memungkinkan tampilan panel samping interaktif ditarik dari tepi jendela tampilan.
  • SlidingPaneLayout - Menyediakan tata letak horizontal multi-panel untuk digunakan di level teratas antarmuka pengguna aplikasi untuk menciptakan tata letak yang dapat menyesuaikan dengan lancar ke berbagai ukuran layar, yang akan memperluas layar yang lebih besar dan menciutkan tampilan agar pas pada layar yang lebih kecil.
  • NestedScrollView - Tata letak scrolling yang mendukung hierarki tampilan scrolling lainnya, yang memungkinkan Anda membuat daftar beserta item yang memuat daftar turunan tambahan. Daftar bersarang ini dapat memuat item yang bisa di-scroll secara horizontal atau vertikal, terpisah dari daftar induk.
  • SwipeRefreshLayout - Menyediakan tata letak untuk mendukung pemuatan ulang data untuk daftar atau tata letak lainnya dengan gestur geser jari.

Tampilan, dialog, dan widget

Library dukungan menyediakan sejumlah class untuk menampilkan konten dan menawarkan elemen interaksi pengguna pada suatu tata letak.

  • CardView - Class kustom library dukungan untuk membuat kartu tampilan gaya Desain Material. Class ini didasarkan pada FrameLayout dengan sudut bulat dan drop shadow.
  • AppCompatDialogFragment - Menyediakan dialog bergaya konsisten dengan memperluas DialogFragment dan menggunakan AppCompatDialog.
  • NotificationCompat - Menyediakan dukungan untuk gaya notifikasi yang lebih baru dengan cara yang kompatibel dengan versi lama.
  • SearchView - Menyediakan class bagi pengguna untuk memasukkan kueri penelusuran dan mengirimkan permintaan ke penyedia penelusuran, yang terutama ditujukan untuk digunakan pada kolom aplikasi.

Desain Material

Library dukungan menyediakan sejumlah class untuk menerapkan rekomendasi antarmuka pengguna Desain Material. Banyak dari class berikut yang disediakan dalam paket android.support.design.

  • CoordinatorLayout - Menyediakan container level teratas untuk tata letak yang menggabungkan komponen dan perilaku Desain Material. Class ini juga dapat digunakan sebagai container untuk interaksi spesifik dengan satu atau beberapa tampilan turunan.
  • AppBarLayout - Menyediakan implementasi bagi banyak fitur scrolling pada konsep kolom aplikasi Desain Material.
  • FloatingActionButton - Membuat tombol mengambang untuk menampilkan jenis khusus tindakan yang dipromosikan. Elemen antarmuka pengguna Desain Material ini ditampilkan sebagai ikon melingkar yang mengambang di atas antarmuka pengguna aplikasi. Untuk informasi lebih lanjut, lihat Menambahkan Tombol Tindakan Mengambang.
  • DrawerLayout - Membuat panel navigasi — panel UI yang menampilkan menu navigasi utama aplikasi Anda. Panel ini muncul saat pengguna menggeser jari dari tepi kiri layar, atau menge-tap ikon panel pada kolom aplikasi. Untuk informasi lebih lanjut, lihat Membuat Panel Navigasi.
  • TabLayout - Menyediakan tata letak untuk menampilkan halaman multi-tab. Widget ini dirancang untuk digunakan dengan class ViewPager.
  • Snackbar - Menyediakan widget untuk menampilkan masukan ringan tentang operasi menggunakan jendela pop-up snackbar.

Grafis

Paket android.support.graphics.drawable menyediakan dukungan untuk aset gambar vektor (vector drawables). Dengan aset gambar vektor, Anda dapat mengganti beberapa aset PNG dengan satu grafis vektor, yang ditetapkan dalam XML.

VectorDrawableCompat menyediakan dukungan untuk aset gambar vektor pada API level 9 ke atas. AnimatedVectorDrawableCompat menyediakan dukungan untuk aset gambar vektor beranimasi pada API level 11 ke atas.

Aksesibilitas

Paket android.support.v4.view.accessibility menyediakan class kompatibilitas untuk mengimplementasikan fitur aksesibilitas yang diperkenalkan pada API level 14 dan yang lebih baru, yang memungkinkan layanan aksesibilitas mengamati dan mengidentifikasi interaksi pengguna dengan item yang ditampilkan di layar.

  • ExploreByTouchHelper - Menyediakan dukungan aksesibilitas pada Tampilan kustom yang mewakili kumpulan item logis yang menyerupai tampilan.

Pemutaran Media

Library Dukungan Android menyediakan backport untuk fungsionalitas router media ke perangkat yang menjalankan versi platform sebelum Android 4.1 (API level 16). Class berikut mendukung kontrol pemutaran media di semua perangkat Android yang terhubung:

  • MediaRouter - Memungkinkan aplikasi untuk mengontrol perutean saluran dan aliran media dari perangkat saat ini ke speaker dan perangkat tujuan eksternal.
  • MediaControllerCompat - Memungkinkan aplikasi untuk berinteraksi dengan sesi media yang sedang berjalan. Aplikasi dapat menyediakan tombol kontrol media melalui mekanisme ini dan mengirim perintah pemutaran lainnya ke sesi.
  • MediaSessionCompat - Menyediakan antarmuka pengendalian jarak kontrol untuk pemutaran media, yang memungkinkan interaksi dengan pengontrol media, tombol volume, tombol media, dan kontrol transport pada aplikasi lain atau di perangkat terpisah.

Aplikasi TV

SDK Android menyediakan library untuk mendukung faktor bentuk seperti layar TV dan pengontrol terkaitnya. Sebuah aplikasi dapat mengandalkan library dukungan yang sesuai untuk menyediakan fungsionalitas pada berbagai versi platform, dan dapat menampilkan materi pada layar eksternal, speaker, dan perangkat tujuan lainnya.

Aplikasi Wear

SDK Android menyediakan library untuk mendukung jam tangan. Library ini memberikan fungsionalitas ke aplikasi yang tersedia bagi pengguna setiap kali mereka memakai jam tangan.

Utilitas

Android Support Library menawarkan sejumlah fitur yang tidak tertanam pada framework. Library ini menawarkan berbagai utilitas yang dapat digunakan aplikasi.