浏览代码

ui: Add slide-in and slide-out animation for wizard steps

Peter Cai 1 年之前
父节点
当前提交
dbdadd33b3

+ 9 - 4
app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardActivity.kt

@@ -51,7 +51,7 @@ class DownloadWizardActivity: BaseEuiccAccessActivity() {
                 if (nextFrag == null) {
                     finish()
                 } else {
-                    showFragment(nextFrag)
+                    showFragment(nextFrag, R.anim.slide_in_right, R.anim.slide_out_left)
                 }
             }
         }
@@ -62,7 +62,7 @@ class DownloadWizardActivity: BaseEuiccAccessActivity() {
                 if (prevFrag == null) {
                     finish()
                 } else {
-                    showFragment(prevFrag)
+                    showFragment(prevFrag, R.anim.slide_in_left, R.anim.slide_out_right)
                 }
             }
         }
@@ -98,9 +98,14 @@ class DownloadWizardActivity: BaseEuiccAccessActivity() {
         showFragment(DownloadWizardSlotSelectFragment())
     }
 
-    private fun showFragment(nextFrag: DownloadWizardStepFragment) {
+    private fun showFragment(
+        nextFrag: DownloadWizardStepFragment,
+        enterAnim: Int = 0,
+        exitAnim: Int = 0
+    ) {
         currentFragment = nextFrag
-        supportFragmentManager.beginTransaction().replace(R.id.step_fragment_container, nextFrag)
+        supportFragmentManager.beginTransaction().setCustomAnimations(enterAnim, exitAnim)
+            .replace(R.id.step_fragment_container, nextFrag)
             .commit()
         refreshButtons()
     }

+ 6 - 0
app-common/src/main/res/anim/slide_in_left.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="@android:integer/config_shortAnimTime"
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:fromXDelta="-100%"
+    android:toXDelta="0%" />

+ 6 - 0
app-common/src/main/res/anim/slide_in_right.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="@android:integer/config_shortAnimTime"
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:fromXDelta="100%"
+    android:toXDelta="0%" />

+ 6 - 0
app-common/src/main/res/anim/slide_out_left.xml

@@ -0,0 +1,6 @@
+<!-- res/anim/slide_out.xml -->
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="@android:integer/config_shortAnimTime"
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:fromXDelta="0%"
+    android:toXDelta="-100%" />

+ 6 - 0
app-common/src/main/res/anim/slide_out_right.xml

@@ -0,0 +1,6 @@
+<!-- res/anim/slide_out.xml -->
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="@android:integer/config_shortAnimTime"
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:fromXDelta="0%"
+    android:toXDelta="100%" />