With reference to simekadam's solution, mFragments isn't being populated in instantiateItem and needs
mFragments.put(position, fragment); inside or you'll end up with this error: Trying to remove fragment from view gives me NullPointerException on mNextAnim.