Jika telah memigrasikan aplikasi ke API kembali sistem yang baru, Anda dapat mengaktifkan kembali prediktif untuk menerima animasi dalam aplikasi secara otomatis dan juga mendukung transisi kustom.
Menambahkan dukungan untuk animasi bawaan dalam aplikasi
Setelah mengaktifkan, aplikasi Anda akan menampilkan animasi untuk "kembali ke layar utama", lintas aktivitas, dan lintas tugas.
Anda juga dapat mengupgrade dependensi komponen material ke Android MDC v1.10.0 untuk menerima animasi komponen material seperti berikut:
Video tersebut menampilkan contoh singkat animasi kembali prediktif untuk lintas aktivitas dan "kembali ke layar utama" menggunakan aplikasi Setelan Android.
- Pada animasi, pengguna menggeser kembali untuk kembali ke layar setelan sebelumnya—contoh animasi lintas aktivitas.
- Sekarang pada layar sebelumnya, pengguna mulai menggeser kembali untuk kedua kalinya, menampilkan pratinjau layar utama dengan wallpapernya—contoh animasi "kembali ke layar utama".
- Pengguna terus menggeser ke kanan, menampilkan animasi jendela yang mengecil ke ikon di layar utama.
- Pengguna kini telah kembali sepenuhnya ke layar utama.
Baca selengkapnya tentang mendukung kembali prediktif.
Menambahkan transisi dan animasi kustom dalam aplikasi
Dengan Android 14, Anda dapat membuat transisi dan animasi kustom dalam aplikasi untuk momen kustom aplikasi Anda.
Gunakan sekumpulan Predictive Back Progress API untuk mengembangkan transisi dan animasi kustom dalam aplikasi.
Pada AndroidX Activity 1.8.0-alpha01 atau yang lebih baru, Anda dapat menambahkan transisi kustom ke
gestur kembali prediktif di aplikasi Anda. Dalam
OnBackPressedCallback
,
kami telah memperkenalkan metode handleOnBackProgressed
, handleOnBackCancelled
, dan
handleOnBackStarted
untuk menganimasikan objek saat pengguna menggeser kembali. Gunakan
metode ini jika Anda memerlukan sesuatu yang lebih khusus daripada animasi default
yang disediakan oleh animasi sistem baru atau animasi Komponen Material.
Tiruan berikut menunjukkan animasi kustom—dalam hal ini, kotak
sederhana—yang diimplementasikan dengan OnBackPressedCallback
. Dalam tiruan, kotak
akan diperkecil dan bergerak untuk mengikuti arah tindakan geser.
Berikut adalah contoh cara menerapkan fitur ini.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
...
val box = findViewById<View>(R.id.box)
val screenWidth = Resources.getSystem().displayMetrics.widthPixels
val maxXShift = (screenWidth / 20)
// For the purposes of demonstration, this code snippet presents the
// callback as being always enabled. However, in practice it's always a
// good idea to always disable the callback when you're ready for the
// system to handle back events.
val callback = object : OnBackPressedCallback(enabled = true) {
override fun handleOnBackProgressed(backEvent: BackEvent) {
when (backEvent.swipeEdge) {
BackEvent.EDGE_LEFT ->
box.translationX = backEvent.progress * maxXShift
BackEvent.EDGE_RIGHT ->
box.translationX = -(backEvent.progress * maxXShift)
}
box.scaleX = 1F - (0.1F * backEvent.progress)
box.scaleY = 1F - (0.1F * backEvent.progress)
}
override fun handleOnBackPressed() {
// Do something after the back gesture completes.
}
override fun handleOnBackCancelled() {
// e.g. reset box to the original position
}
}
this.onBackPressedDispatcher.addCallback(callback)
}
}
Kami memperkirakan sebagian besar aplikasi akan menggunakan AndroidX API yang kompatibel dengan versi lama, tetapi ada
juga API platform serupa dalam
OnBackAnimationCallback
yang tersedia untuk diuji di Pratinjau Developer 1 Android 14 dan yang lebih tinggi.
Menambahkan transisi aktivitas kustom di Android 14 dan yang lebih baru
Untuk memastikan bahwa transisi Aktivitas kustom mendukung kembali prediktif di Android 14
dan yang lebih baru, Anda dapat menggunakan overrideActivityTransition
, bukan
overridePendingTransition
. Ini berarti animasi transisi akan diputar saat
pengguna menggeser kembali.
Untuk memberikan contoh cara kerjanya, bayangkan skenario saat Aktivitas B berada di atas Aktivitas A di data sebelumnya. Anda akan menangani animasi Aktivitas kustom dengan cara berikut:
- Panggil transisi pembukaan atau penutupan dalam metode
onCreate
Aktivitas B. - Saat pengguna membuka Aktivitas B, gunakan
OVERRIDE_TRANSITION_OPEN
. Saat pengguna menggeser untuk kembali ke Aktivitas A, gunakanOVERRIDE_TRANSITION_CLOSE
. Saat menentukan
OVERRIDE_TRANSITION_CLOSE
,enterAnim
adalah animasi masuk Aktivitas A danexitAnim
adalah animasi keluar Aktivitas B.