Saya memiliki aktivitas yang meluncurkan aktivitas lain, melalui klik tombol. Secara default, pada versi OS Android yang lebih baru, OS akan menganimasikan aktivitas baru yang meluncur dari kanan ke kiri.
Apakah ada cara untuk menonaktifkan animasi ini? Saya hanya ingin aktivitas baru muncul tanpa animasi apa pun.
FLAG_ACTIVITY_NO_ANIMATION
danoverridePendingTransition
keduanya hanya API Level 5+.IMHO jawaban ini di sini menyelesaikan masalah dengan cara yang paling elegan ..
Pengembang harus membuat gaya ,
<style name="noAnimTheme" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style>
kemudian dalam manifes, tetapkan sebagai tema untuk aktivitas atau seluruh aplikasi.
<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme"> </activity>
Voila! Baik dan mudah..
Mohon kredit PS untuk penulis asli
sumber
Menerapkan
startActivity(new Intent(FirstActivity.this,SecondActivity.class));
kemudian
overridePendingTransition(0, 0);
Ini akan menghentikan animasi.
sumber
Menurut pendapat saya, jawaban terbaik adalah menggunakan
"overridePendingTransition(0, 0);"
untuk menghindari melihat animasi bila Anda ingin
Intent
keActivity
penggunaan:this.startActivity(new Intent(v.getContext(), newactivity.class)); this.overridePendingTransition(0, 0);
dan untuk tidak melihat animasi saat Anda menekan tombol kembali
onPause
Metode override dinewactivity
@Override protected void onPause() { super.onPause(); overridePendingTransition(0, 0); }
sumber
Cukup tentukan
Intent.FLAG_ACTIVITY_NO_ANIMATION
bendera saat memulaisumber
Ini berfungsi untuk saya saat menonaktifkan animasi Aktivitas selesai.
@Override protected void onPause() { super.onPause(); overridePendingTransition(0, 0); }
sumber
Saya menggunakan 4.4.2, dan memanggil overridePendingTransition (0, 0) di onCreate () aktivitas peluncuran akan menonaktifkan animasi awal (memanggil overridePendingTransition (0, 0) segera setelah startActivity () TIDAK berfungsi). Seperti dicatat dalam jawaban lain, memanggil overridePendingTransition (0, 0) setelah finish () menonaktifkan animasi penutupan.
Ngomong-ngomong, saya menemukan bahwa menyetel gaya dengan "android: windowAnimationStyle"> @ null (jawaban lain yang disebutkan di sini) menyebabkan macet saat aktivitas peluncuran saya mencoba menyetel judul bilah tindakan. Debugging lebih lanjut, saya menemukan bahwa entah bagaimana ini menyebabkan window.hasFeature (Window.FEATURE_ACTION_BAR) gagal di initActionBar () Aktivitas.
sumber
FLAG_ACTIVITY_NO_ANIMATION mungkin berhasil, tetapi tidak berhasil untuk saya jika digabungkan dengan FLAG_ACTIVITY_CLEAR_TASK dan FLAG_ACTIVITY_NEW_TASK. Sepertinya saya melihat animasi untuk membuat tugas baru dengan tumpukan aktivitas baru saat saya menavigasi secara lateral ke tampilan tingkat atas saya yang lain.
Apa yang berhasil di sini adalah memanggil "overridePendingTransition (0, 0);" baik segera setelah panggilan startActivity () saya atau onPause (). Kedua cara berhasil, tetapi melakukannya setelah startActivity () memberi saya sedikit lebih banyak kendali atas kapan saya menginginkan animasi dan kapan saya tidak.
sumber
Saya memiliki masalah yang sama saat layar hitam muncul pada transisi geser dari satu aktivitas ke aktivitas lain menggunakan
overridependingtransition
. dan saya mengikuti cara di bawah ini dan berhasil1) membuat
noanim.xml
di folder anim<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:integer/config_longAnimTime" android:fromYDelta="0%p" android:toYDelta="0%p" />
dan digunakan
overridePendingTransition(R.drawable.lefttorightanim, R.anim.noanim);
Parameter pertama sebagai animasi asli saya dan parameter kedua yaitu animasi keluar sebagai animasi dummy saya
sumber
Untuk menghindari latar belakang hitam ketika memulai suatu kegiatan yang sudah di stack, saya menambahkan
overridePendingTransition(0,0)
dionStart()
:@Override protected void onStart() { overridePendingTransition(0,0); super.onStart(); }
sumber