Onboarding
A beautiful way to introduce users to you app.
Using a regular ViewPager with a custom transformer with callbacks we can achieve this effect
Interface
public interface SceneChangeListener {
void enterScene(@Nullable ImageView sharedElement, float position);
void centerScene(@Nullable ImageView sharedElement);
void exitScene(@Nullable ImageView sharedElement, float position);
void notInScene();
}
We then a fragment class that implements the callbacks to react to movement
Fragment
public abstract class BaseSceneFragment extends Fragment
implements SceneTransformer.SceneChangeListener {
protected static final String KEY_POSITION = "KEY_POSITION";
// we have to set a position tag to the root layout of every scene fragment
// this is so the transformer will know who to make a callback to
protected void setRootPositionTag(@NonNull View root) {
root.setTag(getArguments().getInt(KEY_POSITION));
}
@Override
public abstract void enterScene(@Nullable ImageView sharedElement, float position);
@Override
public abstract void centerScene(@Nullable ImageView sharedElement);
@Override
public abstract void exitScene(@Nullable ImageView sharedElement, float position);
@Override
public abstract void notInScene();
...
}