Skip to content

Instantly share code, notes, and snippets.

@jrobinson3k1
Created May 14, 2015 15:16
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jrobinson3k1/b511dbd032d2bb7d6bcf to your computer and use it in GitHub Desktop.
Save jrobinson3k1/b511dbd032d2bb7d6bcf to your computer and use it in GitHub Desktop.
Shows how to have smooth transitions when using a navigation drawer
private static final int NAVDRAWER_LAUNCH_DELAY = 250;
private static final int CONTENT_FADEIN_DURATION = 250;
private static final int CONTENT_FADEOUT_DURATION = 150;
private boolean mAnimating;
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
mContentFrameLayout.setAlpha(0);
mContentFrameLayout.animate().alpha(1).setDuration(CONTENT_FADEIN_DURATION).setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
mAnimating = true;
}
@Override
public void onAnimationEnd(Animator animation) {
mAnimating = false;
}
@Override
public void onAnimationCancel(Animator animation) {
mAnimating = false;
}
@Override
public void onAnimationRepeat(Animator animation) {
// no-op
}
});
}
@Override
protected void onResume() {
super.onResume();
if (!mAnimating) {
mContentFrameLayout.setAlpha(1);
}
}
public void goTo(Class<?> cls) {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(this, cls);
startActivity(intent);
overridePendingTransition(0, 0);
}
}, NAVDRAWER_LAUNCH_DELAY);
mContentFrameLayout.animate().alpha(0).setDuration(CONTENT_FADEOUT_DURATION);
mDrawerLayout.closeDrawer(Gravity.START);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment