Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getFragmentManager()
- .beginTransaction()
- .setCustomAnimations(R.animator.slide_in, android.R.animator.fade_out, android.R.animator.fade_in, R.animator.slide_out)
- .addToBackStack(null)
- .add(R.id.fragment_1, fragment)
- .commit();
- <?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android">
- <objectAnimator
- android:interpolator="@android:interpolator/linear"
- android:propertyName="xFraction"
- android:valueType="floatType"
- android:valueFrom="1.0"
- android:valueTo="0"
- android:duration="@android:integer/config_shortAnimTime"
- />
- </set>
- public class SlidingLinearLayout extends LinearLayout {
- private float yFraction = 0;
- private float xFraction = 0;
- public SlidingLinearLayout(Context context) {
- super(context);
- }
- public SlidingLinearLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public SlidingLinearLayout(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
- private ViewTreeObserver.OnPreDrawListener preDrawListener = null;
- public void setYFraction(float fraction) {
- this.yFraction = fraction;
- if (getHeight() == 0) {
- if (preDrawListener == null) {
- preDrawListener = new ViewTreeObserver.OnPreDrawListener() {
- @Override
- public boolean onPreDraw() {
- getViewTreeObserver().removeOnPreDrawListener(preDrawListener);
- setYFraction(yFraction);
- return true;
- }
- };
- getViewTreeObserver().addOnPreDrawListener(preDrawListener);
- }
- return;
- }
- float translationY = getHeight() * fraction;
- setTranslationY(translationY);
- }
- public float getYFraction() {
- return this.yFraction;
- }
- public void setXFraction(float fraction) {
- this.xFraction = fraction;
- if (getWidth() == 0) {
- if (preDrawListener == null) {
- preDrawListener = new ViewTreeObserver.OnPreDrawListener() {
- @Override
- public boolean onPreDraw() {
- getViewTreeObserver().removeOnPreDrawListener(preDrawListener);
- setXFraction(xFraction);
- return true;
- }
- };
- getViewTreeObserver().addOnPreDrawListener(preDrawListener);
- }
- return;
- }
- float translationX = getWidth() * fraction;
- setTranslationX(translationX);
- }
- public float getxFraction() {
- return xFraction;
- }
- }
- @Override
- public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
- if (nextAnim == 0) {
- return super.onCreateAnimation(transit, enter, nextAnim);
- }
- Animation anim = android.view.animation.AnimationUtils.loadAnimation(getContext(), nextAnim);
- anim.setAnimationListener(new Animation.AnimationListener() {
- @Override
- public void onAnimationStart(Animation animation) {}
- @Override
- public void onAnimationEnd(Animation animation) {
- // Do any process intensive work that can wait until after fragment has loaded
- }
- @Override
- public void onAnimationRepeat(Animation animation) {}
- });
- return anim;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement