SetupWizardActivity: add slide animation to the fragments

This commit is contained in:
Peter Cai 2021-03-15 19:38:21 +08:00
parent 448601291f
commit 3d9c2fcdcf
5 changed files with 40 additions and 6 deletions

View file

@ -23,12 +23,22 @@ public class SetupWizardActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup_wizard);
switchToFragment(new WelcomeFragment());
}
private<T extends BaseWizardFragment> void switchToFragment(T fragment) {
// Don't use switchToFragment for the first time
// because we don't want animation for the first fragment
// (it would have nothing to animate upon, resulting in a black background)
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.setup_wizard_container, new WelcomeFragment())
.commit();
}
private<T extends BaseWizardFragment> void switchToFragment(T fragment, boolean reverseAnimation) {
getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(
reverseAnimation ? R.anim.slide_in_from_left : R.anim.slide_in_from_right,
reverseAnimation ? R.anim.slide_out_to_right : R.anim.slide_out_to_left
)
.replace(R.id.setup_wizard_container, fragment)
.commit();
}
@ -97,7 +107,7 @@ public class SetupWizardActivity extends AppCompatActivity {
@Override
public void onNavigateNext() {
super.onNavigateNext();
mActivity.switchToFragment(new PermissionsFragment());
mActivity.switchToFragment(new PermissionsFragment(), false);
}
@Override
@ -122,7 +132,7 @@ public class SetupWizardActivity extends AppCompatActivity {
@Override
public void onNavigateBack() {
super.onNavigateBack();
mActivity.switchToFragment(new WelcomeFragment());
mActivity.switchToFragment(new WelcomeFragment(), true);
}
@Override

View file

@ -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%" />

View file

@ -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%" />

View file

@ -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="0%"
android:toXDelta="-100%" />

View file

@ -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="0%"
android:toXDelta="100%" />