Arsip Revisi Support Library

Halaman ini menjelaskan rilis paket Support Library versi lama. Untuk rilis Support Library terbaru, lihat Revisi Support Library Terbaru.

Revisi 26.0.0 Beta 2

(Juni 2017)

Perhatikan bahwa 26.0.0-beta2 adalah versi pra-rilis. Tampilan API-nya dapat berubah, dan tidak selalu menyertakan fitur atau perbaikan bug dari Support Library versi stabil terbaru.

Penting: Support library kini tersedia melalui repositori Maven Google. Anda tidak perlu mendownload repositori dukungan dari SDK Manager. Untuk informasi selengkapnya, lihat Penyiapan Support Library.

API baru

Diffs API

Perbaikan bug

  • Penghilangan Android O SDK menyebabkan hilangnya cetak miring di TextView
  • Pengecualian pointer null saat terhubung ke MediaBrowserServiceCompat
  • TextInputLayout harus menetapkan petunjuk di onProvideAutofillStructure()
  • Stack overflow saat menggunakan ukuran otomatis TextView di O

Revisi 26.0.0 Beta 1

(Mei 2017)

Perhatikan bahwa 26.0.0-beta1 adalah versi pra-rilis. Tampilan API-nya dapat berubah, dan tidak selalu menyertakan fitur atau perbaikan bug dari Support Library versi stabil terbaru.

Penting: Support library kini tersedia melalui repositori Maven Google. Anda tidak perlu mendownload repositori dukungan dari SDK Manager. Untuk informasi selengkapnya, lihat Penyiapan Support Library.

Perubahan penting

  • FragmentActivity.setSupportMediaController() dan FragmentActivity.getSupportMediaController() telah dihapus. Gunakan metode MediaControllerCompat.setMediaController() dan MediaControllerCompat.getMediaController() statis yang baru.
  • BottomNavigationView sekarang memanggil onNavigationItemReselected() jika item yang telah dipilih dipilih, bukan memanggil onNavigationItemSelected().
  • Semua instance metode findViewById() sekarang menampilkan <T extends View> T, bukan View. Perubahan ini memiliki implikasi berikut:
    • Hal ini dapat menyebabkan kode yang ada memiliki jenis nilai yang ditampilkan yang ambigu, misalnya jika ada someMethod(View) dan someMethod(TextView) yang mengambil hasil panggilan ke findViewById().
    • Penggunaan bahasa sumber Java 8 memerlukan transmisi eksplisit ke View jika jenis nilai yang ditampilkan tidak dibatasi (misalnya, assertNotNull(findViewById(...)).someViewMethod()).
    • Penggantian metode findViewById() yang belum final (misalnya Activity.findViewById()) akan memerlukan pembaruan jenis nilai yang ditampilkan.

API baru

  • FragmentManager dan Fragment memiliki metode isStateSaved() yang memungkinkan kueri apakah transaksi diizinkan tanpa kehilangan status atau tidak. Hal ini sangat berguna untuk memeriksa saat menangani peristiwa onClick() sebelum menjalankan transaksi apa pun.
  • Path motion didukung di AnimatedVectorDrawableCompat. Dengan path motion, satu animator objek dapat mengubah dua properti secara bersamaan berdasarkan satu jalur; jalur tersebut ditetapkan sebagai android:pathData pada XML animator).
  • Animasi berbasis fisika:
    • FlingAnimation baru yang mendukung animasi dengan kecepatan awal dan melambat dengan lancar.
    • Subclass DynamicAnimation mendukung animasi properti kustom untuk objek apa pun.
    • Baik SpringAnimation maupun FlingAnimation sekarang dapat menganimasikan nilai float tanpa mengharuskan pengaitan View atau Object dengannya.

    Untuk mengetahui informasi selengkapnya, lihat halaman pratinjau Animasi Spring dan Animasi fling.

  • Dukungan font dalam XML:
    • ResourcesCompat.getFont memungkinkan pemuatan resource font—termasuk XML jenis font—yang dapat digunakan dengan TextView.setTypeface().
    • Saat menggunakan AppCompat, TextView mendukung penentuan resource font atau XML jenis font melalui atribut XML android:fontFamily.
    • Gunakan jenis font XML untuk membuat jenis font dengan variasi gaya dan ketebalan. (Jika Anda menggunakan class support library untuk melakukannya, gunakan atribut app: serta atribut android:.)
  • Font yang dapat didownload:
    • FontsContractCompat baru yang memungkinkan Anda meminta font dari penyedia font, bukan memaketkannya dalam aplikasi Anda.
    • Font juga dapat diminta dalam XML dan digunakan dalam tata letak.
  • Library kompatibilitas emoji:
    • EmojiCompat dapat memproses CharSequence tertentu dan menambahkan EmojiSpans.
    • EmojiTextView dan widget lainnya untuk menampilkan emoji.
    • FontRequestEmojiCompatConfig untuk meminta font emoji dari penyedia font.
  • Pengubahan Ukuran Otomatis TextView:
    • Metode baru di TextViewCompat serta atribut XML untuk mengontrol pengubahan ukuran otomatis di TextView.
  • Kontrol pemutaran Leanback dengan dukungan pencarian:
    • PlaybackTransportRowPresenter baru yang merender kontrol pemutaran dengan SeekBar.
    • PlaybackTransportControlGlue baru yang berfungsi dengan PlaybackTransportRowPresenter dan mendukung pencarian.
    • Class dasar baru PlaybackSeekDataProvider agar aplikasi menyediakan thumbnail pencarian untuk PlaybackTransportControlGlue.
  • Penyimpanan Data Preferensi:
    • PreferenceDataStore kini memungkinkan Anda mengimplementasikan penyimpanan preferensi Anda sendiri, yang ditetapkan dengan metode baru dalam Preference dan PreferenceManager.

Masalah Umum

  • Integrasi kompatibilitas Font dan Emoji yang Dapat Didownload dengan Layanan Google Play hanya berfungsi di Layanan Google Play v11+, yang saat ini tersedia melalui program beta Layanan Google Play.

Perbaikan bug

  • MediaBrowserCompat.search() API tidak berfungsi (Masalah AOSP 262170)
  • ViewCompat.postInvalidateOnAnimation() menampilkan pengecualian (Masalah AOSP 80146)
  • onActivityCreated() dipanggil untuk fragmen dalam Aktivitas yang telah dihancurkan
  • RecyclerView.isComputingLayout() harus menampilkan true (benar) selama pengambilan data
  • Saat transisi Fade terhenti dan dibalik, View akan memulai animasi dari awal. (Perbaikan di-porting dari Android Framework.)
  • Transition.Fade mengabaikan alfa awal View (Masalah AOSP 221820)

Revisi 26.0.0 Alpha 1

(Maret 2017)

Perhatikan bahwa 26.0.0-alpha1 adalah versi pra-rilis. Tampilan API-nya dapat berubah, dan tidak selalu menyertakan fitur atau perbaikan bug dari Support Library versi stabil terbaru.

Perubahan penting

Catatan: Versi SDK minimum ditingkatkan menjadi 14. Akibatnya, banyak API yang ada hanya untuk kompatibilitas dengan API <14 tidak digunakan lagi. Klien API ini harus bermigrasi ke framework yang setara seperti yang tercantum di halaman referensi untuk setiap API yang tidak digunakan lagi.

  • Modul support-percent tidak digunakan lagi. Klien modul ini sebaiknya bermigrasi ke widget ConstraintLayout baru, yang disediakan sebagai artefak terpisah di SDK Manager.
  • Modul support-fragment tidak lagi memiliki dependensi pada modul support-media-compat.

API baru

Banyak class, metode, dan konstanta baru ditambahkan untuk memberikan dukungan yang kompatibel dengan versi lama untuk API platform yang ditambahkan di O Preview.

  • IME_FLAG_NO_PERSONALIZED_LEARNING: IME dapat memproses flag "no learning" untuk aplikasi yang memiliki mode pribadi, seperti browser. Fitur ini membantu IME memahami apakah aplikasi berada dalam mode pribadi sehingga aplikasi dapat menonaktifkan fungsi pembelajaran atau adaptifnya saat aplikasi berada dalam mode tersebut.

Untuk mengetahui daftar lengkap perubahan API antara 25.2.0 dan 26.0.0-alpha1, lihat laporan perbedaan API support library.

Perbaikan bug

  • Dalam beberapa kasus, animasi AutoTransition sederhana dapat diganggu oleh tampilan "jumps". (Masalah AOSP 221816)

Revisi 25.4.0

(Juni 2017)

Penting: Support library kini tersedia melalui repositori Maven Google. Anda tidak perlu mendownload repositori dukungan dari SDK Manager. Untuk informasi selengkapnya, lihat Penyiapan Support Library.

Perubahan penting

  • Panggilan executePendingTransactions(), commitNow(), popBackStackImmediate(), dan panggilan transaksi serupa tidak diizinkan selama perubahan status FragmentManager. Eksekusi reentrant transaksi tidak aman dan FragmentManager sekarang memberlakukan hal ini selama perubahan statusnya.
  • Bersamaan dengan rilis support library ini, kami juga merilis multidex versi 1.0.2. Versi ini menyertakan perubahan penting berikut:
    • Memungkinkan multidexing APK instrumentasi.
    • Menghentikan penggunaan MultiDexTestRunner (sebagai gantinya, gunakan AndroidJUnitRunner).
    • Memberikan perlindungan yang lebih baik terhadap pengelolaan ekstraksi arsip yang buruk pada aplikasi.
    • Memperbaiki bug yang dapat menyebabkan file ditinggalkan sementara.
    • Mendukung penginstalan yang lebih cepat saat dilakukan dalam proses serentak.
    • Memperbaiki bug penginstalan pada API 19 dan 20.

API Baru dan Modifikasi

Path morphing dan path interpolation didukung di AnimatedVectorDrawableCompat. Path morphing memungkinkan perubahan bentuk dari satu jalur (ditetapkan sebagai android:valueFrom) ke jalur lain (ditentukan sebagai android:valueTo), untuk memberikan efek visual yang kompleks dan menarik. Interpolasi jalur memungkinkan interpolator untuk AnimatedVectorDrawableCompat ditentukan sebagai jalur (ditetapkan sebagai android:pathData dalam XML interpolator).

Diffs API

Perbaikan masalah

  • Pengecualian pointer null saat terhubung ke MediaBrowserServiceCompat
  • MediaBrowserCompat.search() API tidak berfungsi (Masalah AOSP 262170)
  • Callback onItemClicked BrowseFragment rusak di 25.3.0
  • NullPointerException saat men-scroll ke atas dan ke bawah dalam VerticalGridView di 25.3.1
  • ClassCastException di SimpleArrayMap.allocArrays()

Revisi 25.3.1

(Maret 2017)

Perbaikan masalah:

  • SwitchCompat memerlukan SDK minimum versi 14 atau lebih tinggi. (Masalah AOSP 251302)
  • Animasi berbasis prinsip fisika updateListener melewati frame pertama.
  • Animasi label BottomNavigationView rusak.

Revisi 25.3.0

(Maret 2017)

Perubahan penting

Metadata versi Support Library akan otomatis ditambahkan ke AndroidManifest.xml saat mem-build dari Gradle, sehingga menyederhanakan pelacakan versi dalam build publik. Contoh:

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

Penghentian penggunaan

Sejumlah metode dan class dinyatakan tidak digunakan lagi dalam rilis ini. API yang tidak digunakan lagi ini akan dihapus dalam versi mendatang dan developer harus melakukan migrasi dari API tersebut. Untuk informasi selengkapnya tentang cara bermigrasi dari API tertentu, lihat dokumentasinya.

ExifInterface
Metode boolean getLatLong(float[]) tidak digunakan lagi. Sebagai gantinya, gunakan metode baru getLatLong(), yang tidak mengambil argumen dan menampilkan double[].
mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) tidak digunakan lagi. Sebagai gantinya, gunakan metode baru setErrorMessage(int, CharSequence), yang menerima kode error dan deskripsi opsional.
EXTRA_SUGGESTION_KEYWORDS tidak digunakan lagi. Sebagai gantinya, gunakan fungsionalitas penelusuran MediaBrowserCompat.
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() diganti namanya menjadi LinearLayoutManager.getInitialPrefetchItemCount(). Nama lama masih didukung tetapi akan dihapus dalam rilis mendatang.

API Baru dan Modifikasi

appcompat-v7
Metode baru ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) menyederhanakan penonaktifan animasi ikon tombol navigasi panel navigasi.
customtabs
Menambahkan dukungan untuk saluran pesan. Lihat referensi CustomTabsService.requestPostMessageChannel() dan CustomTabsService.postMessage() untuk mengetahui detailnya.
dynamic-animation
Library animasi baru berbasis fisika yang menyediakan sekumpulan API untuk membuat animasi yang secara dinamis bereaksi terhadap input pengguna.
leanback-v17
Menambahkan dukungan untuk latar belakang paralaks. Lihat referensi Parallax untuk mengetahui detailnya.
Menambahkan widget TimePicker untuk memilih waktu di antarmuka TV.
mediacompat
Menambahkan fungsionalitas penelusuran. Lihat referensi MediaBrowserCompat.search() dan MediaBrowserServiceCompat.onSearch() untuk mengetahui detailnya.
Menambahkan dukungan untuk mode acak dan ulangi. Lihat referensi MediaSessionCompat.setRepeatMode() dan setShuffleModeEnabled() untuk mengetahui detailnya.

Perbaikan masalah:

Revisi 25.2.0

(Februari 2017)

Perubahan Penting

Perbaikan masalah:

  • Rilis ini memperbaiki masalah mediarouter yang parah, yang menggunakan perangkat A2DP dan API perutean media dapat menyebabkan perangkat menjadi tidak responsif, sehingga memerlukan mulai ulang.
  • Class FragmentManager.FragmentLifecycleCallbacks sekarang bersifat statis.

Perbaikan masalah:

  • Menampilkan presentasi slide dengan pencerminan layar menyebabkan perangkat terputus dari Wi-Fi
  • Tombol media tidak menangani dengan benar aplikasi media yang tidak terdaftar ke setMediaButtonReceiver()
  • Error VectorDrawable dengan resource string (Masalah AOSP 232407)
  • TextInputLayout menempatkan petunjuk dan teks jika teks ditetapkan oleh XML (Masalah AOSP 230171)
  • Kebocoran memori di MediaControllerCompat (Masalah AOSP 231441)
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() mengalami error
  • RecyclerView mengalami error saat mendaur ulang holder tampilan (Masalah AOSP 225762)
  • getAllowGeneratedReplies() salah menampilkan nilai salah untuk tindakan di dalam WearableExtender

Revisi 25.1.1

(Januari 2017)

Penting: Terdapat bug yang diketahui di class android.support.v7.media.MediaRouter Support Library revisi 25.1.1 dan 25.1.0. Jika aplikasi Anda menggunakan MediaRouter v7, Anda harus melakukan update ke Support Library Revisi 25.2.0, yang memperbaiki bug ini.

Perubahan Penting

  • Transaksi fragmen kini dapat dioptimalkan di dalam dan di seluruh transaksi. Mengoptimalkan operasi transaksi fragmen dapat menghilangkan operasi yang melakukan pembatalan. Misalnya, dua transaksi dijalankan bersamaan, transaksi pertama menambahkan fragmen A dan transaksi kedua mengganti fragmen A dengan fragmen B. Dalam hal ini, operasi pertama mungkin dibatalkan, dan hanya fragment B yang ditambahkan. Artinya fragmen A mungkin tidak melalui siklus proses pembuatan/pemusnahan.

    Efek samping dari pengoptimalan ini adalah fragmen mungkin mengalami perubahan status di luar urutan yang diharapkan. Contohnya, satu transaksi menambahkan fragmen A, transaksi kedua menambahkan fragmen B, lalu transaksi ketiga menghapus fragmen A. Tanpa pengoptimalan, fragment B dapat memperkirakan bahwa selagi fragmen B sedang dibuat, fragmen A juga akan ada karena fragmen A akan dihapus setelah fragmen B ditambahkan. Dengan pengoptimalan, fragment B tidak dapat memastikan bahwa fragment A akan ada saat B sedang dibuat, karena pembuatan dan pemusnahan fragment A dapat dihapus melalui pengoptimalan.

    Pengoptimalan ini dinonaktifkan secara default. Untuk mengaktifkan pengoptimalan, panggil FragmentTransaction.setAllowOptimization(true).

  • Fragment kini dapat menunda transisi dan animasinya hingga siap menggunakan Fragment.postponeEnterTransition() dan Fragment.startPostponedEnterTransition(). API ini mirip dengan Activity.postponeEnterTransition() dan Activity.startPostponedEnterTransition() yang digunakan dengan Transisi Aktivitas.

Perbaikan masalah:

Revisi 25.1.0

(Desember 2016)

Penting: Terdapat bug yang diketahui di class android.support.v7.media.MediaRouter Support Library revisi 25.1.1 dan 25.1.0. Jika aplikasi Anda menggunakan MediaRouter v7, Anda harus melakukan update ke Support Library Revisi 25.2.0, yang memperbaiki bug ini.

Perubahan Penting

  • Klien widget RecyclerView bertingkat (misalnya, daftar scroll vertikal dari daftar scroll horizontal) bisa mendapatkan manfaat performa yang signifikan dengan memberi petunjuk kepada pengelola tata letak widget RecyclerView bagian dalam tentang berapa banyak item yang harus disiapkan sebelum di-scroll di layar. Panggil LinearLayoutManager.setInitialPrefetchItemCount(N), dengan N adalah jumlah tampilan yang terlihat per item dalam. Misalnya, jika daftar horizontal bagian dalam menampilkan minimal tiga setengah tampilan item sekaligus, Anda dapat meningkatkan performa dengan memanggil LinearLayoutManager.setInitialPrefetchItemCount(4). Dengan melakukannya, RecyclerView dapat membuat semua tampilan yang relevan lebih awal, saat RecyclerView luar di-scroll, yang akan mengurangi ketersendatan selama scroll secara signifikan.
  • FragmentActivity.setSupportMediaController() dan FragmentActivity.getSupportMediaController() tidak digunakan lagi. Harap gunakan metode MediaControllerCompat.setMediaController() dan MediaControllerCompat.getMediaController() statis yang baru.
  • Saat klien menentukan tint widget melalui penambahan tint appcompat (misalnya, appcompat:buttonTint), klien bertanggung jawab untuk menyediakan semua status yang diperlukan (seperti "disabled", " Informasid", dll.). Hal ini konsisten dengan cara penentuan tint widget saat menggunakan penambahan tint framework.

API Baru dan Modifikasi

Perbaikan masalah:

  • Peralihan visibilitas sandi menggagalkan uji aksesibilitas.
  • Appcompat tidak mematuhi state_enabled di perangkat sebelum Android L.
  • Menambahkan mekanisme pemulihan fokus ke RecyclerView. Hal ini juga memperbaiki kerusakan fokus pada fragmen pref support saat menggunakan navigasi DPAD seperti di perangkat Android TV.
  • Leanback: BrowseFragment mengalami error jika header dinonaktifkan dan adaptor kosong.
  • Appcompat: AlertDialog terlalu lebar.
  • InputContentInfoCompat memanggil requestPermission() saat seharusnya memanggil releasePermission().
  • MediaBrowserCompat mengalami error.
  • CoordinatorLayout mengukur/mengatur tata letak tampilan saat visibilitas ditetapkan ke GONE.
  • Tidak dapat menambahkan tint AnimatedVectorDrawableCompat pada level API di bawah 24
  • Library Leanback memicu error lint palsu
  • Library palet menyebabkan kegagalan uji pada setiap API level
  • RecyclerView gagal dalam pengujian di Leanback
  • RecyclerView mengalami error saat mendaur ulang holder tampilan (Masalah AOSP 225762)
  • Fragment.onDestroy() tidak dipanggil untuk fragmen di data sebelumnya
  • Scrim CollapsingToolbarLayout tidak digambar saat diciutkan
  • CoordinatorLayout.offsetChildByInset() menampilkan IllegalArgumentException
  • Item RecyclerView animasi melepaskan RecyclerView bagian dalam, mencegah pengambilan data di masa mendatang
  • Item RecyclerView yang ditambahkan tidak dapat diambil data bertingkat
  • Data pengambilan data untuk item RecyclerView bertingkat dihapus selama tata letak pertama
  • Pengambilan data RecyclerView gagal jika dua peristiwa tarik tiba di posisi yang sama
  • RecyclerView harus mengatur tata letak secara spekulatif saat RenderThread dirender
  • Resource warna yang dikonfigurasi malam yang dikonversi ke Drawable tidak selalu dihapus dengan benar dari cache Resource
  • FloatingActionButton: Setelan terprogram BackgroundTintList tidak berfungsi dengan baik (Masalah AOSP 227428)
  • TextInputLayout: Typeface tidak disiapkan untuk ErrorView (Masalah AOSP 227803)
  • TextInputLayout selalu melakukan fallback ke warna error terang di bawah API 23 (Masalah AOSP 221992)
  • FloatingActionButton ditampilkan sebagai ditekan saat pointer keluar

Daftar lengkap perbaikan bug publik tersedia di Issue Tracker AOSP.

Penghentian penggunaan

Sejumlah metode dan class dinyatakan tidak digunakan lagi dalam rilis ini. API yang tidak digunakan lagi ini akan dihapus dalam versi mendatang dan developer harus bermigrasi dari API tersebut. Untuk informasi selengkapnya tentang cara meninggalkan API tertentu, lihat dokumentasinya.

Revisi 25.0.1

(November 2016)

Perbaikan masalah:

Daftar lengkap perbaikan bug publik tersedia di Issue Tracker AOSP.

Revisi 25.0.0

(Oktober 2016)

Perubahan penting

  • Konstruktor ContextCompat dibuat dilindungi. Class ini tidak boleh dibuat instance-nya secara publik, tetapi dapat diperluas dengan support library yang menargetkan API level yang lebih baru.
  • Konstruktor ActivityCompat dibuat dilindungi. Class ini tidak boleh dibuat instance-nya secara publik, tetapi dapat diperluas dengan support library yang menargetkan API level yang lebih baru.
  • getReferrer(Activity) telah dibuat statis.
  • android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V) telah dihapus. Semua implementasi klien dari metode ini harus dihapus.
  • android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object) telah dihapus. Penggunaannya harus diganti dengan metode fromMediaSession() yang penamaannya lebih tepat.
  • android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) telah dihapus. Penggunaannya harus diganti dengan metode MediaSessionCompat.QueueItem#fromQueueItem yang penamaannya lebih tepat.
  • android.support.v7.widget.Space telah dihapus. Penggunaan harus diganti dengan android.support.v4.widget.Space.

API baru

  • Class android.support.design.widget.BottomNavigationView menerapkan pola navigasi bawah dari spesifikasi Desain Material.
  • Paket android.support.v13.view.inputmethod baru menyertakan class untuk mengakses fitur android.view.inputmethod.InputConnection yang diperkenalkan setelah API level 13.
  • Class android.v7.widget.RecyclerView.DividerItemDecoration menyediakan implementasi dasar untuk pembagi vertikal atau horizontal di antara item.
  • Gaya dekorasi baru dalam android.support.v7.app.NotificationCompat, DecoratedCustomViewStyle, dan DecoratedMediaCustomViewStyle, class mirror yang ditambahkan di platform API 24.

Perbaikan masalah:

Daftar lengkap perbaikan bug publik tersedia di Issue Tracker AOSP.

Revisi 24.2.1

September 2016

Perbaikan masalah:

Daftar lengkap perbaikan bug publik tersedia di Issue Tracker AOSP.

Revisi 24.2.0

Agustus 2016

Rilis 24.2.0 berisi perubahan berikut:

Catatan: Rilis 24.2.0 menghapus dukungan untuk Android 2.2 (API level 8) dan yang lebih rendah. Class dan metode yang ada hanya untuk menyalurkan versi sistem tersebut kini ditandai sebagai tidak digunakan lagi dan sebaiknya tidak digunakan lagi. Class dan metode yang tidak digunakan lagi ini dapat dihapus dalam rilis mendatang.

Pemecahan Support Library v4

Dengan rilis ini, Support Library v4 telah dibagi menjadi beberapa modul yang lebih kecil:

support-compat
Menyediakan wrapper kompatibilitas untuk API framework baru, seperti Context.getDrawable() dan View.performAccessibilityAction().
support-core-utils
Menyediakan sejumlah class utilitas, seperti AsyncTaskLoader dan PermissionChecker.
support-core-ui
Mengimplementasikan berbagai komponen terkait UI, seperti ViewPager, NestedScrollView, dan ExploreByTouchHelper.
support-media-compat
Mem-backport bagian framework media, termasuk MediaBrowser dan MediaSession.
support-fragment
Mem-backport framework fragmen. Modul ini memiliki dependensi pada support-compat, support-core-utils, support-core-ui, dan support-media-compat.

Untuk kompatibilitas mundur, jika Anda mencantumkan support-v4 dalam skrip Gradle, APK Anda akan menyertakan semua modul ini. Namun, untuk mengurangi ukuran APK, sebaiknya hanya cantumkan modul spesifik yang dibutuhkan aplikasi Anda.

Update API

Perubahan perilaku

  • Jika Anda menggunakan fungsionalitas siang/malam library appcompat, sekarang sistem akan otomatis membuat ulang aktivitas Anda setiap kali mode siang/malam berubah (baik karena waktu atau karena panggilan ke AppCompatDelegate.setLocalNightMode()).
  • Snackbar kini menggambar di belakang menu navigasi jika status bar transparan.

Library MediaRouter

Perangkat Bluetooth tidak lagi tercantum sebagai rute media. Pemilihan rute audio ke perangkat Bluetooth kini sepenuhnya dikontrol pada tingkat sistem Android.

Penghentian penggunaan

Class dan metode yang tidak digunakan lagi dapat dihapus pada rilis mendatang. Sebaiknya Anda meninggalkan API ini sesegera mungkin.

  • Beberapa metode di class berikut hanya diperlukan untuk API 8 dan yang lebih lama, dan sebaiknya tidak digunakan lagi. Sebagai gantinya, gunakan implementasi framework.
    • android.support.v4.view.KeyEventCompat: Ganti dengan KeyEvent
    • android.support.v4.view.MotionEventCompat: Gunakan MotionEvent
    • android.support.v4.view.ViewCompat: Gunakan View
    • android.support.v4.view.ViewConfigurationCompat: Gunakan ViewConfiguration
  • AccessibilityServiceInfoCompat.getDescription() tidak digunakan lagi dan digantikan dengan AccessibilityServiceInfoCompat.loadDescription(), yang menampilkan deskripsi yang dilokalkan dengan benar.
  • Sebaiknya Anda tidak membuat instance class ActivityCompat secara langsung. Metode getReferrer(Activity) non-statis akan dijadikan statis dalam rilis mendatang.
  • CoordinatorLayout.Behavior.isDirty() tidak digunakan lagi dan tidak lagi dipanggil oleh CoordinatorLayout. Semua implementasi, dan juga panggilan ke metode ini, harus dihapus.
  • MediaSessionCompat.obtain() tidak digunakan lagi dan diganti dengan metode fromMediaSession() yang penamaannya lebih tepat.
  • MediaSessionCompat.QueueItem.obtain() tidak digunakan lagi dan diganti dengan metode fromQueueItem() yang penamaannya lebih tepat.
  • Beberapa class abstrak tidak digunakan lagi dan diganti dengan antarmuka yang mencerminkan ekuivalensi framework-nya secara lebih akurat.
  • CustomTabsSession.setToolbarItem() tidak digunakan lagi dan diganti dengan setSecondaryToolbarViews() berbasis RemoteViews.

Perbaikan bug

Masalah umum berikut telah diperbaiki melalui rilis 24.2.0:

  • Memastikan indikator SwipeRefreshLayout ditampilkan saat setRefreshing(true) dipanggil sebelum pengukuran pertama diteruskan (Masalah AOSP 77712)
  • Mencegah TabLayout berkedip saat berganti halaman (Masalah AOSP 180454)
  • Menghindari ClassNotFoundException saat membatalkan marshalling SavedState di API level 11 dan yang lebih rendah (Masalah AOSP 196430)

Daftar lengkap perbaikan bug publik tersedia di Issue Tracker AOSP.

Revisi 24.1.1

Juli 2016

Perbaikan masalah:

  • Memperbaiki masalah dalam rilis 24.1.0 yang memengaruhi ID resource yang dibagikan antar-library dukungan. Masalah ini menyebabkan aplikasi yang bergantung pada support library dengan resource (seperti design dan appcompat) mengalami masalah yang disebabkan oleh ketidakcocokan ID resource.

Revisi 24.1.0

Juli 2016

Perubahan untuk Support Library v4:

Perbaikan masalah:

  • TabLayout.setCustomView(null) menghasilkan NullPointerException (Masalah AOSP 214753)
  • TabLayout salah menandai tab khusus (Masalah AOSP 214316)
  • AppCompatTextHelper menggunakan array atribut yang diurutkan dengan tidak benar (Masalah AOSP 214366)
  • Tidak dapat mereferensikan VectorDrawable dari XML container drawable saat menggunakan ContextWrapper kustom (Masalah AOSP 214055)
  • ViewDragHelper.saveLastMotion() memunculkan ArrayIndexOutOfBoundsException (Masalah AOSP 212945)
  • BottomSheetBehavior meluas ke tinggi konten lama saat menggunakan setState(STATE_EXPANDED) (Masalah AOSP 213660)
  • CollapsingToolbarLayout tidak menangani turunan yang dapat di-pin dengan margin atas atau bawah (Masalah AOSP 213001)
  • Judul penjelajahan Leanback tidak mendukung penyelarasan RTL (Masalah AOSP 213461)
  • PagerTabStrip menghilang karena anotasi yang diwarisi tidak ada (Masalah AOSP 213359)
  • Data binding menampilkan NullPointerException saat menggunakan Boolean untuk menetapkan flag kondisional (Masalah AOSP 191841)
  • CoordinatorLayout tidak merespons setFitsSystemWindows() (Masalah AOSP 212720)
  • BottomSheetBehavior mengalami error saat menetapkan status awal (Masalah AOSP 203114)
  • ViewPager melewati halaman jika indeks halaman bernilai besar (Masalah AOSP 211734)
  • BottomSheetBehavior tidak berfungsi dengan tata letak dinamis (Masalah AOSP 205226)

Revisi 24.0.0

Juni 2016

Perubahan untuk Support Library v4:
  • Menambahkan Fragment.commitNow() untuk commit sinkron
  • Menambahkan NotificationCompat.MessagingStyle untuk percakapan multi-peserta
  • Menambahkan NotificationManagerCompat.areNotificationsEnabled() dan getImportance()
  • MediaSessionCompat sekarang mencerminkan fungsi MediaSession dan tidak lagi memanggil setMediaButtonReceiver() secara otomatis

Catatan: Hanya MediaBrowserServiceCompat dalam versi 24.0.0 yang kompatibel dengan versi Android mendatang di atas API 24. Jika Anda menggunakan versi sebelumnya, update ke versi ini untuk memastikan kompatibilitas.

Perubahan untuk library appcompat v7:
  • Menambahkan dukungan untuk mereferensikan objek ColorStateList bertema dari XML
Perubahan untuk Support Library Design:
Perubahan untuk library Leanback v17:
  • Menambahkan OnboardingFragment untuk memberikan alur sambutan dan penyiapan peluncuran pertama
Perubahan untuk tab khusus:
  • Menambahkan dukungan untuk memberikan hierarki RemoteViews untuk toolbar sekunder
  • Menambahkan CustomTabsClient.connectAndInitialize() untuk pemanasan satu baris

Revisi 23.4.0

Mei 2016

Perubahan untuk Support Library v4:
  • Memperbaiki masalah di mana fragment ditambahkan dalam urutan yang salah. (Masalah 206901)
  • Memperbaiki masalah saat panel aplikasi tidak digambar setelah di-scroll keluar layar. (Masalah 178037)
Perubahan untuk library appcompat v7:
Perubahan untuk Support Library Design:
Perubahan untuk library Vector Drawable:

Revisi 23.3.0

April 2016

Perubahan untuk Support Library v4:
  • Menambahkan AppLaunchChecker untuk membantu melacak bagaimana aplikasi Anda sebelumnya diluncurkan oleh pengguna. hasStartedFromLauncher() memberi tahu Anda apakah pengguna telah meluncurkan aplikasi Anda dari layar utama sebelumnya, atau apakah aplikasi hanya dimulai dengan cara lain (misalnya, untuk melihat URL web tertentu).
  • Memperbaiki kebocoran memori dalam MediaBrowserServiceCompat.mConnections. (Masalah 205220)
  • Memperbaiki masalah saat ViewPager tidak memperhitungkan margin halaman saat membalik halaman. (Masalah 203816)
  • Fragment.onRequestPermissionsResult() sekarang dikirim ke fragmen turunan.
Perubahan untuk library appcompat v7:
Perubahan untuk library mediarouter v7:
Perubahan untuk library Preference v7:
Perubahan untuk library recyclerview v7:
Perubahan untuk Support Library Design:

Revisi 23.2.1

Maret 2016

Perubahan untuk Support Library v4:
Perubahan untuk library appcompat v7:
  • Mengembalikan dependensi pada aset vektor sehingga developer yang menggunakan library appcompat tidak dipaksa menggunakan VectorDrawable dan flag build terkaitnya.
  • Memperbaiki masalah kompatibilitas terkait Mode Malam dan API level 23. (Masalah 201910)
  • Memperbaiki masalah kompatibilitas terkait SwitchCompat dan API level 7. (Masalah 201942)
  • Memperbaiki masalah penyebaran nilai konfigurasi di objek Resources Masalah 201928
  • Memperbaiki masalah kompatibilitas saat tombol batal android.support.v7.app.NotificationCompat.MediaStyle menjadi tidak terlihat di API level 21 dan yang lebih lama. (Masalah 202156)
  • Memperbaiki error kompatibilitas terkait AppCompatSpinner di API level 21 dan yang lebih lama. (Masalah 202246)
  • Memperbaiki masalah saat gaya app:textAllCaps = "false" tidak berfungsi. (Masalah 202117)
  • Memperbaiki error saat memulihkan SearchView. (Masalah 201836)
  • Memperbaiki kebocoran memori yang terjadi saat menambahkan tint resource drawable menggunakan AppCompat. (Masalah 202379)
  • Memperbaiki masalah KeyEvent pada API level 11 dan yang lebih lama. (Masalah 202939)
Perubahan untuk library cardview v7:
Perubahan untuk library recyclerview v7:
Perubahan untuk library mediarouter v7:
Perubahan untuk Library Leanback v17:
  • Memperbaiki masalah GridLayout.onAddFocusables() yang menyebabkan dipilihnya item yang salah.
  • Memperbaiki masalah terkait tindakan GuidedStepFragment yang menghilang setelah tindakan diciutkan.
Perubahan untuk Support Library Design:
Perubahan untuk VectorDrawableCompat:
  • Memperbaiki bug di mana variabel yang salah dibaca untuk android:tintMode. (Masalah 201907)

Revisi 23.2.0

Februari 2016

Perubahan untuk Support library v4:
  • Menambahkan MediaBrowserCompat untuk dukungan MediaBrowser, dan MediaBrowserServiceCompat untuk dukungan MediaBrowserService. Hal ini berguna saat menghubungkan layanan latar belakang aplikasi media dengan komponen UI, dan berintegrasi dengan Android Auto dan Android Wear tanpa memerlukan API level 21 atau yang lebih tinggi.
  • Sistem sekarang memanggil onActivityResult() untuk FragmentActivity bertingkat.
Perubahan untuk library AppCompat v7:
  • Menambahkan fungsionalitas Mode Malam ke API level 14 dan yang lebih tinggi. Beralihlah antara Tema Terang dan Tema Gelap berdasarkan waktu atau setelan khusus aplikasi.
    • Tema siang dan malam dapat ditemukan di sini: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode(): menetapkan mode default aplikasi dengan meneruskan salah satu konstanta berikut:
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode(): mengganti setelan mode malam untuk komponen aplikasi lokal.
    • AppCompatDelegate.getDefaultNightMode(): menampilkan mode malam default.
Perubahan untuk library mediarouter v7:
Perubahan untuk support library Design:
  • Menambahkan dukungan untuk sheet bawah. Plugin interaksi, BottomSheetBehavior, memungkinkan tampilan turunan CoordinatorLayout untuk berfungsi sebagai sheet bawah. Class dasar, BottomSheetCallback, menyediakan callback untuk memantau peristiwa sheet bawah.
Perubahan untuk support library CustomTabs:
  • Tab Khusus Chrome kini memungkinkan aplikasi untuk menyertakan panel bawah dengan tombol tindakan, selain tombol tindakan atas yang sudah ada.
  • CustomTabsIntent.Builder.addToolBarItem(): menambahkan tombol tindakan ke tab khusus. Anda dapat menggunakan ini untuk menambahkan beberapa tombol.
  • CustomTabsSession.setToolBarItem(): memperbarui visual untuk item toolbar. Metode ini hanya akan berhasil jika diberi ID yang valid dan sesi browser berjalan di latar depan.
Menambahkan pustaka dukungan VectorDrawable:
  • Kelas yang Ditambahkan:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • Menambahkan dukungan untuk aset VectorDrawable ke aplikasi yang berjalan di API level 7 atau yang lebih tinggi. Aset AnimatedVectorDrawable juga didukung pada API level 11 atau yang lebih tinggi. Aset vektor dapat jauh lebih kecil daripada aset gambar dan akan membantu mengurangi ukuran aplikasi dengan mengurangi jumlah aset yang diperlukan untuk mendukung beberapa layar perangkat.
  • Library ini sekarang menjadi dependensi dari library AppCompat v7, yang memungkinkan developer dan AppCompat untuk menggunakan vektor drawable dengan mudah. Untuk menggunakan VectorDrawableCompat di dalam suatu ImageButton atau ImageView, gunakan atribut XML app:srcCompat atau metode setImageResource().
  • Untuk terus mereferensikan ID atribut di API level 20 atau yang lebih rendah, tambahkan flag appt berikut ke file build,gradle Anda:
    • Jika Anda membuat aplikasi dengan Plugin Android untuk Gradle 1.5.0 atau yang lebih rendah, tambahkan kode berikut ke file build.gradle Anda:
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
      
    • Jika Anda membuat aplikasi dengan Plugin Android untuk Gradle 2.0.0 atau yang lebih tinggi, tambahkan kode berikut ke file build.gradle Anda:
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
Perubahan untuk Library Leanback v17:
  • Menambahkan kemampuan baru ke GuidedStepFragment, yang merupakan komponen yang memandu pengguna dalam mengambil sebuah atau serangkaian keputusan:
    • Menambahkan tindakan tombol ke GuidedAction:
      • GuidedStepFragment.setButtonActions(): menetapkan daftar tombol GuidedAction yang dapat dipilih pengguna dari tampilan Action.
    • Bidang Description sekarang bisa diedit:
      • GuidedAction.Builder.descriptionEditable(): saat meneruskan true, menetapkan deskripsi tindakan agar dapat diedit.
      • GuidedAction.getEditDescription(): menampilkan deskripsi yang dapat diedit sebagai CharSequence.
    • Menambahkan daftar tarik-turun dari sub-tindakan:
      • GuidedAction.setSubActions(): menetapkan daftar GuidedAction sebagai menu drop-down dari sub-tindakan.
  • Menambahkan widget GuidedDatePickerAction untuk fungsionalitas DatePicker:
    • Tanggal dipilih menggunakan kolom tahun, bulan, dan hari, serta memiliki rentang yang dapat disesuaikan.
    • GuidedDatePickerAction.Builder: class builder untuk objek GuidedDatePickerAction.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): menetapkan format tanggal yang diinginkan dengan meneruskan String tiga karakter yang sesuai, misalnya “YMD” atau “MDY”. Atau, gunakan atribut XML datePickerFormat.
Perubahan untuk library RecyclerView v7:
  • RecyclerView kini memiliki fitur keikutsertaan yang disebut AutoMeasure yang memungkinkan RecyclerView.LayoutManager menggabungkan konten atau menangani berbagai spesifikasi pengukuran yang disediakan oleh induk RecyclerView dengan mudah. Class ini mendukung semua kemampuan animasi RecyclerView yang ada.
    • Jika Anda memiliki RecyclerView.LayoutManager kustom, panggil setAutoMeasureEnabled(true) untuk mulai menggunakan AutoMeasure API yang baru. Semua objek RecyclerView.LayoutManager bawaan secara default mendukung pengukuran otomatis.
    • RecyclerView.LayoutManager tidak lagi mengabaikan beberapa setelan RecyclerView.LayoutParams, seperti MATCH_PARENT dalam arah scroll.

      Catatan: Pembatasan yang telah dicabut ini dapat menyebabkan perilaku yang tidak terduga dalam tata letak Anda. Pastikan Anda menentukan parameter tata letak yang benar.

  • Saat memperbarui RecyclerView.ViewHolder dengan informasi payload, DefaultItemAnimator kini menonaktifkan animasi perubahan.
  • Sekarang Anda dapat mengubah kecepatan escape ItemTouchHelper untuk mengontrol sensitivitas geser. Agar lebih mudah atau lebih sulit untuk menggeser, ganti getSwipeEscapeVelocity(float defaultValue) dan ubah defaultValue.

Revisi 23.1.1

November 2015

Perubahan untuk library recyclerview v7:
  • Memperbaiki error yang terjadi saat Anda melakukan tindakan geser-untuk-menutup yang disediakan oleh class utilitas ItemTouchHelper, lalu menambahkan item. (Masalah 190500)
Perubahan untuk library preference v7:
Perubahan untuk Support library Leanback v17:
  • Memperbaiki sejumlah masalah internal di library ini.
Perubahan untuk Support library Design:
  • Menambahkan metode getHeaderView ke class NavigationView.
  • Perbaikan masalah latar belakang transparan untuk objek FloatingActionButton di perangkat yang menjalankan Android 4.0 (API level 15) dan yang lebih rendah. (Masalah 183315)

Revisi 23.1.0

Oktober 2015

Perubahan untuk Support library v4:
  • Menambahkan dukungan antarmuka OnScrollChangedListener ke widget NestedScrollView. Hal ini memungkinkan Anda menerima callback saat posisi scroll X atau Y berubah.
  • Menambahkan class MediaButtonReceiver untuk meneruskan kontrol pemutaran yang diterima ke layanan yang mengelola class MediaSessionCompat. Class MediaSessionCompat memiliki konstruktor yang dapat otomatis menemukan penerima tombol media dalam manifes. Penerima tombol media adalah bagian penting untuk menangani kontrol pemutaran dari kontrol hardware atau Bluetooth.
Perubahan untuk library appcompat v7:
  • Menambahkan desain material Seekbar dan widget ImageButton.
  • Memperbarui widget ImageView untuk mendukung fitur warna.
  • Memperbarui tampilan dan nuansa widget SwitchCompat.
Perubahan untuk library mediarouter v7:
  • Menambahkan fitur berikut ke class MediaRouteChooserDialog:
    • Menampilkan halaman pemuatan selagi mencari penyedia rute media.
    • Mencakup ikon jenis perangkat untuk mempermudah identifikasi perangkat.
    • Mengurutkan rute berdasarkan frekuensi penggunaan dalam aplikasi saat ini.
    • Mendukung mode lanskap.
  • Menambahkan fitur berikut ke class MediaRouteControllerDialog:
    • Mengenali transmisi layar dan memberikan deskripsi yang tepat.
    • Mendukung berbagai ukuran dan rasio lebar tinggi sampul album, serta memuat sampul secara asinkron.
    • Otomatis memilih warna konten berdasarkan warna utama aplikasi.
    • Menyesuaikan tata letak dialog berdasarkan ruang layar yang tersedia di perangkat.
    • Mendukung mode lanskap.
Perubahan untuk library palet v7:
  • Menambahkan metode setRegion() untuk mendukung ekstraksi warna dari wilayah tertentu dari objek Bitmap.
Perubahan untuk library recyclerview v7:
  • Menambahkan API animasi yang ditingkatkan ke class ItemAnimator untuk penyesuaian yang lebih baik:
    • Animasi perubahan tidak lagi menerapkan dua salinan objek ViewHolder, yang mengaktifkan animasi konten item. Selain itu, objek ItemAnimator memutuskan apakah ingin menggunakan kembali objek ViewHolder yang sama atau membuat objek baru.
    • API kumpulan informasi baru memberikan fleksibilitas kepada class ItemAnimator untuk mengumpulkan data pada titik yang benar dalam siklus proses tata letak. Informasi ini kemudian diteruskan ke callback animasi.
  • Menyediakan rencana transisi yang lancar untuk perubahan API yang tidak kompatibel dengan versi lama ini:
    • Jika sebelumnya telah memperluas class ItemAnimator, Anda dapat mengubah class dasar menjadi SimpleItemAnimator dan kode Anda akan berfungsi seperti sebelumnya. Class SimpleItemAnimator menyediakan API lama dengan menggabungkan API baru.
    • Beberapa metode dihapus dari class ItemAnimator. Kode berikut tidak akan lagi dikompilasi:
    • Kotlin

      recyclerView.itemAnimator.supportsChangeAnimations = false
      

      Java

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
      

      Anda dapat menggantinya dengan:

      Kotlin

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false
      

      Java

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
      
Perubahan untuk Support Library Preference v7, v14, dan v17:
  • Menghapus API untuk mengontrol dialog EditText.
Perubahan untuk Support library Leanback v17:
  • Menambahkan versi class GuidedStepFragment untuk Support library (memperluas android.support.v4.app.Fragment), serta animasi dan transisi yang lebih baik.
  • Mengupdate class GuidedStepFragment sehingga dapat ditempatkan di atas konten yang ada.
  • Menambahkan kemampuan untuk menganotasi berbagai jenis penyelesaian penelusuran ke class SearchFragment.
  • Menambahkan dukungan transisi slide bertahap ke class VerticalGridFragment.
Perubahan untuk Support library Design:
  • Menambahkan dukungan penghitungan karakter ke widget TextInputLayout.
  • Menambahkan dukungan pengepasan tepi ke class AppBarLayout dengan menambahkan konstanta SCROLL_FLAG_SNAP. Saat scroll berakhir, jika tampilan hanya terlihat sebagian, tampilan akan diikat dan di-scroll ke tepi terdekat.
  • Menambahkan dukungan untuk tampilan kustom ke class NavigationView menggunakan atribut app:actionLayout atau metode MenuItemCompat.setActionView().
Perubahan untuk Support library Custom Tabs:
  • Menambahkan metode enableUrlBarHiding() ke class CustomTabsIntent. Hal ini memungkinkan klien untuk menyesuaikan apakah kolom URL akan otomatis disembunyikan saat di-scroll ke bawah.
  • Menambahkan metode setActionButton() ke class CustomTabsSession. Ini memungkinkan klien mengubah ikon untuk tombol tindakan kustom di tab kustom yang sudah diluncurkan.
  • Menambahkan konstanta TAB_SHOWN dan TAB_HIDDEN sebagai peristiwa baru untuk metode onNavigationEvent dari class CustomTabsCallback.

Revisi 23.0.1

September 2015

Perubahan untuk Support library Preference v7 dan v14:
  • Menambahkan file tata letak dan gaya desain material. (Masalah 183376)
Perubahan untuk library appcompat v7:
  • Memperbaiki masalah error untuk class Fragment dengan membatasi penggunaan lapisan hardware ke Android 4.1 (API level 16) dan yang lebih tinggi. (Masalah 183896)
  • Memperbaiki masalah saat tombol hardware tidak berfungsi ketika suatu aktivitas telah menetapkan class Toolbar untuk berfungsi sebagai ActionBar dengan menggunakan metode setSupportActionBar(). (Masalah 183334)
  • Memperbarui class AppCompatDialogFragment sehingga tidak lagi menampilkan error Windows feature must be requested before adding content. (Masalah 183186)
Perubahan untuk Support library Design:
Perubahan untuk Support library Custom Tabs:

Revisi 23

Agustus 2015

Menambahkan support library baru:

Untuk daftar lengkap perubahan Support Library, lihat Laporan Perbedaan API Support Library.

Revisi 22.2.1

Juli 2015

Perubahan untuk Support library Design:
  • Menambahkan metode hide() dan show() ke class FloatingActionButton untuk pemicuan animasi secara terprogram.
  • Menambahkan konstanta LENGTH_INDEFINITE ke class Snackbar untuk menampilkan snackbar sampai ditutup atau snackbar lain ditampilkan. Selain itu, metode setActionTextColor(int) dan setActionTextColor(ColorStateList) ditambahkan.
  • Menambahkan metode getSelectedTabPosition() ke class TabLayout untuk mengambil tab yang saat ini dipilih.
  • Menyediakan API yang sangat lancar untuk class android.support.v7.app.NotificationCompat.MediaStyle untuk perantaian metode.
  • Menambahkan metode praktis ke RecyclerView untuk penyisipan banyak item sekaligus.

Untuk daftar lengkap perubahan Support Library, lihat Laporan Perbedaan API Support Library.

Revisi 22.2.0

Mei 2015

Menambahkan Design Support Library:
  • Menambahkan TextInputLayout untuk menampilkan petunjuk EditText dan teks error sebagai label mengambang.
  • Menambahkan FloatingActionButton untuk mengimplementasikan tindakan utama di antarmuka Anda sebagai tombol tindakan mengambang, yang mendukung ukuran default atau mini.
  • Menambahkan Snackbar untuk memberikan masukan ringan dengan tindakan opsional dalam snackbar animasi.
  • Menambahkan TabLayout untuk mengimplementasikan tab tetap dan dapat di-scroll, serta integrasi yang mudah dengan ViewPager.
  • Menambahkan NavigationView untuk mengimplementasikan konten panel navigasi, termasuk kemampuan untuk meluaskan item menu melalui Resource Menu.
  • Menambahkan CoordinatorLayout, yang merupakan tata letak serbaguna, yang digunakan untuk membangun dependensi antara tampilan yang setara dan memungkinkan reaksi scroll yang mudah antar-komponen melalui CoordinatorLayout.Behavior. Banyak komponen Library Design bergantung pada menjadi turunan dari CoordinatorLayout.
  • Menambahkan AppBarLayout, penampung untuk Toolbar dan tampilan lainnya (seperti TabLayout) untuk bereaksi terhadap peristiwa scroll dengan men-scroll keluar layar, yang menjadi terlihat sebagai reaksi terhadap scroll ke bawah, atau menciutkan/membatalkan penciutan sebelum men-scroll keluar/memasuki layar.
  • Menambahkan CollapsingToolbarLayout untuk mengontrol penciutan Toolbar. Toolbar dapat menciut dengan: menyematkan komponen ke bagian atas layar saat layar diciutkan, memperkenalkan scroll paralaks komponen seperti ImageView, atau menambahkan warna scrim konten ketika tampilan diciutkan sebagian.
Perubahan untuk support library v4:
Perubahan untuk library appcompat v7:

Untuk daftar lengkap perubahan Support Library, lihat Laporan Perbedaan API Support Library.

Revisi 22.1.0

April 2015

Perubahan untuk library Annotations:
  • Menambahkan library Annotations untuk memberikan dukungan bagi pemeriksaan kode yang disempurnakan. Anotasi ditambahkan sebagai tag metadata yang dilampirkan ke variabel, parameter, dan nilai yang ditampilkan untuk memeriksa nilai yang ditampilkan metode, parameter yang diteruskan, serta variabel dan kolom lokal.
Perubahan untuk support library v4:
Perubahan untuk library appcompat v7:
Perubahan untuk library leanback v17:
Perubahan untuk library recyclerview v7:
Perubahan untuk library RenderScript v8:

Revisi 22

Maret 2015

Perubahan untuk support library v4:
Perubahan untuk library appcompat v7:
Perubahan untuk library leanback v17:
Perubahan untuk library mediarouter v7:
Perubahan untuk library recyclerview v7:

Revisi 21.0.3

Desember 2014

Perubahan untuk support library v4:

Revision 21.0.2

November 2014

Perubahan untuk support library v4:
Perubahan untuk library appcompat v7:
  • Menambahkan konstruktor PopupMenu untuk mendukung menu pop-up baru.
  • Menambahkan dukungan untuk deskripsi ikon Ciutkan di class Toolbar.
  • Mengupdate widget SearchView untuk mendukung penayangan commitIcon.
  • Menghapus atribut buttonGravity dari class Toolbar.
Perubahan untuk library cardview v7:
Perubahan untuk library recyclerview v7:
Perubahan untuk library leanback v17:
  • Menambahkan dukungan untuk menghasilkan fragmen kode v4.
  • Mengubah warna teks sekunder di CardView.

Revisi 21.0.1

November 2014

Menambahkan support library multidex guna mendukung beberapa file Dalvik Executable (DEX) untuk dukungan file multidex sebelum Android 5.0.

Revisi 21

Oktober 2014

Perubahan untuk support library v4:
  • Menambahkan dukungan untuk transisi Fragment bagi perangkat yang menjalankan Android 5.0 (API level 21). Perlu diketahui bahwa transisi tidak berpengaruh pada perangkat yang menjalankan Android 4.4 dan yang lebih lama.
  • Menambahkan DocumentFile untuk memudahkan transisi dari File selagi menangani hierarki dokumen. Namun, class ini menuntut lebih banyak overhead pemrosesan dibandingkan dengan DocumentsContract API platform yang ditambahkan di Android 4.4 (API level 19). Jadi, Anda harus beralih menggunakan DocumentsContract saat menjalankan di Android 4.4 dan yang lebih tinggi.
Perubahan untuk library appcompat v7:
  • Penambahan dukungan untuk antarmuka pengguna desain material.
  • Menambahkan Toolbar, yang menggeneralisasi fungsionalitas ActionBar untuk digunakan dalam tata letak aplikasi.
  • Memperbarui ActionBarDrawerToggle, yang berisi animasi menu-ke-panah
  • Mengupdate widget antarmuka pengguna umum untuk memungkinkan penambahan tint melalui atribut tema saat berjalan di perangkat pra-Android 5.0
  • Menambahkan SwitchCompat, backport dari widget Switch yang ditambahkan di Android 4.0 (API level 14).
Library cardview v7 baru:
  • Menambahkan widget CardView, yang menyediakan implementasi yang kompatibel dengan desain material untuk menampilkan item data.
Library recyclerview v7 baru:
  • Menambahkan widget RecyclerView, yang menyediakan tampilan daftar fleksibel untuk menyediakan jendela terbatas ke set data yang besar.
Library palet v7 baru:
  • Menambahkan class Palette, yang memungkinkan Anda mengekstrak warna yang menonjol dari sebuah gambar.
Library leanback v17 baru:

Revisi 20

Juli 2014

Perubahan untuk support library v4:

Revisi 19.1.0

Maret 2014

Perubahan untuk support library v4:
  • Menambahkan class SwipeRefreshLayout, yang memungkinkan pengguna memuat ulang konten tampilan dengan gestur geser vertikal.
  • Memperbaiki masalah aksesibilitas terkait panel navigasi.
Perubahan untuk library appcompat v7:
  • Memperbaiki masalah latar belakang terkait panel tindakan.

Revisi 19.0.1

Desember 2013

Perubahan untuk support library v4:
Perubahan untuk library mediarouter v7:
Perubahan untuk library RenderScript v8
  • Menambahkan penyebaran error untuk lapisan thunking RenderScript.

Revisi 19

Oktober 2013

Perubahan untuk support library v4:
Perubahan untuk library mediarouter v7:
  • Menambahkan dukungan untuk antrean pemutaran media, dengan menetapkan nilai header HTTP dan durasi pemutaran media.
  • Menambahkan tindakan sesi start, get, dan end eksplisit untuk mengelola sesi pemutaran media dengan router media secara eksplisit.

Revisi 18

Juli 2013

Perubahan untuk support library v4:
  • Antarmuka pengguna
    • Menambahkan BidiFormatter untuk menangani string teks yang menggabungkan teks berformat kanan ke kiri dan kiri ke kanan.
    • Memodifikasi ViewPager agar dapat menangani kasus dengan lebih baik ketika pager memiliki lebar nol terukur dalam pemrosesan tata letak awal.
    • Memodifikasi DrawerLayout dan SlidingPaneLayout agar tidak menampilkan pengecualian untuk pengukuran saat kode project sedang diedit.
  • Aksesibilitas
  • Media
    • Menambahkan class helper TransportMediator untuk mengelola kontrol transport media, seperti putar, jeda, lewati, dan tindakan media lainnya.
    • Menambahkan DisplayManagerCompat untuk mengelola output tampilan ke satu atau beberapa tampilan perangkat.
  • Perubahan lainnya
Library appcompat v7 baru:
  • Menambahkan ActionBar untuk mengizinkan implementasi pola desain antarmuka pengguna panel tindakan kembali ke Android 2.1 (API level 7) dan yang lebih tinggi. Penggunaan class ini mengharuskan Anda mengimplementasikan aktivitas dengan memperluas class ActionBarActivity baru.
Library mediarouter v7 baru:

Menambahkan library mediarouter baru yang menyediakan dukungan untuk pratinjau developer Google Cast. API library mediarouter v7 menyediakan sarana untuk mengontrol perutean saluran dan streaming media dari perangkat saat ini ke layar eksternal, speaker, dan perangkat tujuan lainnya, dengan kompatibilitas kembali ke Android 2.1 (API level 7). Lihat library mediarouter V7 untuk informasi selengkapnya.

API library mediarouter v7 yang diperkenalkan dalam Support Library r18 dapat berubah dalam revisi Support Library mendatang. Saat ini, sebaiknya gunakan library hanya dalam kaitannya dengan pratinjau developer Google Cast.

Revisi 13

Mei 2013

Perubahan untuk support library v4:
Library gridlayout v7 baru:
  • Menambahkan GridLayout untuk memberikan dukungan bagi objek tata letak GridLayout.
  • Menambahkan android.support.v7.widget.Space yang dapat digunakan untuk membuat area kosong dalam objek tata letak GridLayout.

Revisi 12

Februari 2013

Perubahan untuk support library v4:
  • Menyempurnakan perilaku interaksi untuk ViewPager.
  • Memperbaiki bug yang dapat menyebabkan ViewPager memilih halaman yang salah.
  • Memperbaiki penggunaan metode removeView() selama tata letak untuk ViewPager.
  • Memperbaiki masalah terkait SearchViewCompat saat penggunaan tombol kembali untuk menutup tidak menghapus teks penelusuran. Perbaikan ini hanya berlaku untuk host API level 14 dan yang lebih tinggi.

Revisi 11

November 2012

Perubahan untuk support library v4:

Revisi 10

Agustus 2012

Perubahan untuk support library v4:
  • Penambahan dukungan untuk fitur notifikasi yang diperkenalkan di Android 4.1 (API level 16) dengan penambahan pada NotificationCompat.

Revisi 9

Juni 2012

Perubahan untuk support library v4:

Revisi 8

April 2012

Perubahan untuk support library v4:
  • Memperbaiki flag intent untuk objek PendingIntent yang dihasilkan oleh TaskStackBuilder.
  • Menghapus atribut yang tidak digunakan dari project library gridlayout untuk memastikan library dapat dibuat dengan API level 7 dan yang lebih tinggi.
  • Menambahkan file .classpath dan .project untuk project library gridlayout.

Revisi 7

Maret 2012

Perubahan untuk support library v4:
  • Menambahkan ShareCompat, yang menyediakan class helper untuk mengirim dan menerima konten untuk aplikasi berbagi ke media sosial, termasuk metadata baru untuk mengatribusikan data yang dibagikan ke aplikasi sumber. Class ini juga menyediakan integrasi yang kompatibel dengan ShareActionProvider baru di Android 4.0.
  • Menambahkan NavUtils dan TaskStackBuilder guna memberikan dukungan untuk mengimplementasikan panduan Desain Android untuk navigasi. Penambahan ini mencakup cara untuk mengimplementasikan tombol Naik pada panel tindakan di seluruh versi. Untuk contoh implementasi pola ini, lihat contoh AppNavigation di (<em><sdk></em>/samples/<em><platform></em>/AppNavigation).
  • Menambahkan NotificationCompat.Builder untuk menyediakan implementasi kompatibilitas class helper Notification.Builder Android 3.0 untuk membuat notifikasi sistem standar.

Revisi 6

Desember 2011

Catatan: Referensi untuk API support library kini tersedia dengan referensi framework, misalnya: android.support.v4.app.

Perubahan untuk support library v4:
  • Perubahan pada ViewPager:
    • Menambahkan dukungan tampilan dekoratif ekstra untuk ViewPager. Tampilan dekoratif dapat disediakan sebagai tampilan turunan dari sebuah halaman dalam tata letak XML.
    • Menambahkan PagerAdapter.getPageTitle() untuk menyediakan string judul bagi halaman, yang secara default ditetapkan ke tanpa judul untuk setiap halaman.
    • Menambahkan PagerTitleStrip, strip judul non-interaktif, yang dapat ditambahkan sebagai turunan ViewPager. Developer dapat menyediakan tampilan dan warna teks, serta informasi ukuran tata letak dan gravitasi.
    • Memperbarui metode PagerAdapter untuk menerima objek ViewGroup, bukan View, guna menghindari transmisi class dalam implementasi adaptor.
    • Mengupdate ViewPager untuk menggunakan perilaku ayunkan jari bergaya Peluncur.
    • Perbaikan bug untuk interaksi antarmuka pengguna dan otomatisasi pengujian.
  • Dukungan untuk Fragment:
    • Mengubah metode setStartDeferred() menjadi setUserVisibleHint(boolean).
    • Menambahkan waktu mulai tertunda untuk halaman yang tidak sedang ditampilkan di layar guna meningkatkan performa.
  • Dukungan untuk Accessibility API:
    • Memperbarui metode AccessibilityDelegateCompat untuk menampilkan daftar kosong, bukan null.
    • Menambahkan API baru yang diperlukan oleh sampel v4.

Revisi 5

Desember 2011

Perubahan untuk support library v4:

Revisi 4

Oktober 2011

Perubahan untuk support library v4:
  • Menambahkan EdgeEffectCompat untuk mendukung EdgeEffect.
  • Menambahkan LocalBroadcastManager agar aplikasi dapat dengan mudah mendaftar dan menerima intent dalam satu aplikasi tanpa menyiarkannya secara global.
  • Menambahkan dukungan di ViewCompat untuk memeriksa dan menetapkan mode overscroll untuk View di Android 2.3 dan yang lebih baru.
  • Perubahan pada Fragment API:
    • Menambahkan API baru untuk mengontrol visibilitas menu baru.
    • Menambahkan API animasi kustom.
    • Menambahkan API di FragmentActivity untuk mempertahankan data instance kustom non-konfigurasi.
    • Beragam perbaikan bug.
  • Memperbaiki bug Loader yang menyebabkan masalah dalam membatalkan AsyncTask saat berjalan di Froyo dan versi platform yang lebih lama. Kode dukungan sekarang menggunakan AsyncTask versinya sendiri untuk mempertahankan perilaku yang sama di semua versi platform.

Revisi 3

Juli 2011

Perubahan untuk support library v4:
  • Menambahkan dukungan untuk Fragment.SavedState
  • Menambahkan MotionEventCompat untuk mendukung MotionEvent API yang lebih baru
  • Menambahkan VelocityTrackerCompat untuk mendukung VelocityTracker API yang lebih baru
  • Menambahkan ViewConfigurationCompat untuk mendukung ViewConfiguration API yang lebih baru
  • Semua API baru (hanya tersedia di support library) yang memungkinkan Anda membuat UI dengan paging horizontal, sehingga pengguna dapat menggeser ke kiri dan kanan di antara tampilan konten. Class yang mendukung ini meliputi:
    • ViewPager: ViewGroup yang mengelola tata letak untuk tampilan turunan, tempat pengguna dapat menggeser di antara tampilan tersebut.
    • PagerAdapter: Adaptor yang mengisi ViewPager dengan tampilan yang mewakili setiap halaman.
    • FragmentPagerAdapter: Ekstensi PagerAdapter untuk membalik di antara fragmen.
    • FragmentStatePagerAdapter: Ekstensi PagerAdapter untuk membalik di antara fragmen yang menggunakan dukungan library untuk Fragment.SavedState.
Support library v13 baru:
  • Menyertakan FragmentPagerAdapter dan FragmentStatePagerAdapter untuk mendukung paging horizontal.

    API ini sama persis dengan API yang ditambahkan ke support library v4, tetapi bergantung pada komponen platform lain di Android 3.2. Gunakan library ini, bukan v4, jika Anda mengembangkan aplikasi untuk Android 3.2 dan yang lebih tinggi (semua API lain di library v4 sudah tersedia dengan API level 13).

Revisi 2

Mei 2011

Perubahan untuk library v4:

Revisi 1

Maret 2011

Rilis awal dengan library v4.