I have not seen many answers for a fragment animation on exit. What I am trying to do here is revert the animation when I go back on a fragment. For instance, I have three fragments, when I go to the next fragment it does a right slide in animation but now in my current fragment if i go back i want to revert that animation.
int enterAnimRight = R.anim.slide_in_right;
int enterAnimLeft = R.anim.slide_out_left;
int exitAnimRight = R.anim.slide_in_left;
int exitAnimLeft = R.anim.slide_out_left;
lastFragment = 0;
currentFragment = 0;
//Bottom Navigation
BottomNavigationView bottomNav = findViewById(R.id.nav_menu);
//Item listener when one of hte items below from the nav_bar is selected
bottomNav.setOnItemSelectedListener(item -> {
Fragment selectedFragment = null;
switch(item.getItemId()){
case R.id.nav_home:
selectedFragment = new HomeFragment(dbHelper, db);
currentFragment=1;
break;
case R.id.nav_list:
selectedFragment = new ListFragment(dbHelper, db);
currentFragment=2;
break;
case R.id.nav_add:
selectedFragment = new AddFragment(dbHelper, db);
currentFragment=3;
break;
}
/* if(currentFragment > lastFragment){
lastFragment = currentFragment;
}else{
//finish();
overridePendingTransition(enterAnimLeft, enterAnimRight);
}
lastFragment=currentFragment;*/
Log.i("current", currentFragment + " " + lastFragment );
getSupportFragmentManager().beginTransaction().setCustomAnimations(enterAnimRight,
enterAnimLeft,
exitAnimLeft,
exitAnimRight)
.replace(R.id.fragment_container, selectedFragment)
.addToBackStack(null)
.commit();
return true;
});
slide_in_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="-100%p"
android:toXDelta="0" />
</set>
slide_in_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0" />
</set>
slide_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="0"
android:toXDelta="-100%p" />
</set>
slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="0"
android:toXDelta="100%p" />
</set>