Advertisement
Guest User

Untitled

a guest
Aug 24th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. getFragmentManager()
  2. .beginTransaction()
  3. .setCustomAnimations(R.animator.slide_in, android.R.animator.fade_out, android.R.animator.fade_in, R.animator.slide_out)
  4. .addToBackStack(null)
  5. .add(R.id.fragment_1, fragment)
  6. .commit();
  7.  
  8. <?xml version="1.0" encoding="utf-8"?>
  9. <set xmlns:android="http://schemas.android.com/apk/res/android">
  10. <objectAnimator
  11. android:interpolator="@android:interpolator/linear"
  12. android:propertyName="xFraction"
  13. android:valueType="floatType"
  14. android:valueFrom="1.0"
  15. android:valueTo="0"
  16. android:duration="@android:integer/config_shortAnimTime"
  17. />
  18. </set>
  19.  
  20. public class SlidingLinearLayout extends LinearLayout {
  21.  
  22. private float yFraction = 0;
  23. private float xFraction = 0;
  24.  
  25. public SlidingLinearLayout(Context context) {
  26. super(context);
  27. }
  28.  
  29. public SlidingLinearLayout(Context context, AttributeSet attrs) {
  30. super(context, attrs);
  31. }
  32.  
  33. public SlidingLinearLayout(Context context, AttributeSet attrs, int defStyle) {
  34. super(context, attrs, defStyle);
  35. }
  36.  
  37. private ViewTreeObserver.OnPreDrawListener preDrawListener = null;
  38.  
  39. public void setYFraction(float fraction) {
  40.  
  41. this.yFraction = fraction;
  42.  
  43. if (getHeight() == 0) {
  44. if (preDrawListener == null) {
  45. preDrawListener = new ViewTreeObserver.OnPreDrawListener() {
  46. @Override
  47. public boolean onPreDraw() {
  48. getViewTreeObserver().removeOnPreDrawListener(preDrawListener);
  49. setYFraction(yFraction);
  50. return true;
  51. }
  52. };
  53. getViewTreeObserver().addOnPreDrawListener(preDrawListener);
  54. }
  55. return;
  56. }
  57.  
  58. float translationY = getHeight() * fraction;
  59. setTranslationY(translationY);
  60. }
  61.  
  62. public float getYFraction() {
  63. return this.yFraction;
  64. }
  65.  
  66. public void setXFraction(float fraction) {
  67.  
  68. this.xFraction = fraction;
  69.  
  70. if (getWidth() == 0) {
  71. if (preDrawListener == null) {
  72. preDrawListener = new ViewTreeObserver.OnPreDrawListener() {
  73. @Override
  74. public boolean onPreDraw() {
  75. getViewTreeObserver().removeOnPreDrawListener(preDrawListener);
  76. setXFraction(xFraction);
  77. return true;
  78. }
  79. };
  80. getViewTreeObserver().addOnPreDrawListener(preDrawListener);
  81. }
  82. return;
  83. }
  84.  
  85. float translationX = getWidth() * fraction;
  86. setTranslationX(translationX);
  87. }
  88.  
  89. public float getxFraction() {
  90. return xFraction;
  91. }
  92. }
  93.  
  94. @Override
  95. public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
  96. if (nextAnim == 0) {
  97. return super.onCreateAnimation(transit, enter, nextAnim);
  98. }
  99.  
  100. Animation anim = android.view.animation.AnimationUtils.loadAnimation(getContext(), nextAnim);
  101. anim.setAnimationListener(new Animation.AnimationListener() {
  102. @Override
  103. public void onAnimationStart(Animation animation) {}
  104. @Override
  105. public void onAnimationEnd(Animation animation) {
  106. // Do any process intensive work that can wait until after fragment has loaded
  107. }
  108.  
  109. @Override
  110. public void onAnimationRepeat(Animation animation) {}
  111. });
  112. return anim;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement