Panduan Fitur Support Library

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

Anda dapat terus menggunakan support library ini. Artefak historis (versi 27 dan yang lebih lama, serta yang dikemas 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.

Support Library 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 berbagai kategori penting fitur yang tersedia pada support library, dan class khusus yang perlu diketahui saat mem-build aplikasi.

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

Komponen Aplikasi

Class Support Library 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 - Menyediakan implementasi yang kompatibel dengan versi lama untuk aktivitas agar dapat menggunakan versi support library Fragment dan Loader API.
    • AppCompatActivity - Menyediakan tema warna Material, penambahan tint widget, dan dukungan panel aplikasi ke perangkat versi lama. Penggunaan class ini mengharuskan penggunaan tema Theme.AppCompat untuk menciptakan presentasi visual yang konsisten.
  • Fragment - Menyediakan implementasi mandiri untuk class Fragment framework. 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 aktivitas tertentu.
  • Loader - Menyediakan implementasi statis dari class Loader framework, 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 support library 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 support library.

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 selengkapnya tentang penggunaan RecyclerView, lihat panduan Recycler View.
  • 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 tujuan 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 dapat ditarik dari tepi jendela tampilan.
  • SlidingPaneLayout - Menyediakan tata letak horizontal multi-panel untuk digunakan di tingkat atas antarmuka pengguna aplikasi untuk membuat 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, sehingga Anda dapat membuat daftar beserta item yang berisi daftar turunan tambahan. Daftar bersarang ini dapat memuat item yang dapat di-scroll secara horizontal atau vertikal, terpisah dari daftar induk.
  • SwipeRefreshLayout - Menyediakan tata letak untuk mendukung pemuatan ulang data bagi daftar atau tata letak lainnya dengan gestur geser jari.

Tampilan, dialog, dan widget

Support library menyediakan sejumlah class untuk menampilkan konten dan memberikan elemen interaksi pengguna pada suatu tata letak.

  • CardView - Class support library kustom 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 panel aplikasi.

Desain Material

Support library menyediakan sejumlah class untuk menerapkan rekomendasi antarmuka pengguna Desain Material.

  • CoordinatorLayout - Menyediakan container tingkat atas 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 panel aplikasi Desain Material.
  • FloatingActionButton - Membuat tombol mengambang untuk menampilkan tindakan yang dipromosikan jenis khusus. 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 (FAB).
  • 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 mengetuk ikon panel samping pada panel 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 vektor drawable. Dengan vektor drawable, Anda dapat mengganti beberapa aset PNG dengan satu grafik vektor, yang ditetapkan dalam XML.

VectorDrawableCompat menyediakan dukungan untuk vektor drawable pada API level 9 ke atas. AnimatedVectorDrawableCompat menyediakan dukungan untuk vektor drawable animasi 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 ke atas, 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

Android Support Library menyediakan backport fungsi router media untuk 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 aliran dan saluran media dari perangkat saat ini ke speaker eksternal dan perangkat tujuan.
  • MediaControllerCompat - Memungkinkan aplikasi 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 remote control untuk pemutaran media, yang memungkinkan interaksi dengan pengontrol media, tombol volume, tombol media, dan kontrol transport di 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 support library yang sesuai untuk menyediakan fungsi di berbagai versi platform, dan dapat menampilkan konten pada layar eksternal, speaker, dan perangkat tujuan lainnya.

Aplikasi Wear

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

Utilitas

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