Saya ingin menukar dua fragmen dalam suatu aktivitas melalui animasi. Misalkan PageA adalah untuk fragement A dan sisi kiri pada layar dan PageB adalah untuk fragmen B yaitu di sisi kanan layar. Sekarang saya ingin ketika saya mengklik tombol di halamanA maka PageA akan pindah ke sisi kanan layar dengan beberapa animasi transisi.
Saya mencoba kode di bawah ini untuk mengganti posisi
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();
Mencari petunjuk.
Terima kasih sebelumnya.
android
android-animation
Deepak Goel
sumber
sumber
Jawaban:
Pencarian lama dan Anda mungkin sudah menemukannya, tetapi untuk referensi di masa mendatang:
inilah yang Anda gunakan untuk menyetel animasi khusus saat Anda mengganti fragmen melalui kode:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); ft.replace(R.id.fragment_container, newFragment, "fragment"); // Start the animated transition. ft.commit();
Berikut adalah contoh animasi slide_in_left:
<?xml version="1.0" encoding="utf-8"?> <set> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="-100%" android:toXDelta="0" android:interpolator="@android:anim/decelerate_interpolator" android:duration="500"/> </set>
Perhatikan bahwa ini adalah animasi jika Anda menggunakan pustaka kompatibilitas. Sebaliknya, jika Anda menggunakan dan SDK dengan dukungan asli untuk FragmentManager, animasi Anda akan terlihat seperti ini:
<?xml version="1.0" encoding="utf-8"?> <set> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="x" android:valueType="floatType" android:valueFrom="-1280" android:valueTo="0" android:duration="500"/> </set>
Ini karena pustaka kompatibilitas tidak mendukung tipe objectAnimator baru dan sebagai gantinya hanya mengimplementasikan kerangka animasi lama.
sumber