2015-01-15 3 views
1

Im анимировать мой взгляд заголовка на свитке через просмотр классов анимации следующим образом:.view.animate() translationY() заполнить пустое пространство

view.animate() 
.translationY(-view.getBottom()) 
.alpha(0) 
.setDuration(HEADER_HIDE_ANIM_DURATION) 
.setInterpolator(new DecelerateInterpolator()); 

Проблема заключается в том, что вид ниже вид им перевод не заполнение до переводных просмотров пустое пространство:

enter image description here

enter image description here

Моя раскладка выглядит что-нибудь вроде этого:

<LinnearLayout> 
    <include layout"toolbar" /> //included layout which is the view translated 
    <FrameLayout /> //fragment container 
</LinnearLayout> 

Как решить эту проблему?

ответ

1

Вы пытаетесь потушить свою панель инструментов? Попробуйте вручную управлять FrameLayout. Что-то вроде этого:

 ObjectAnimator animator = ValueAnimator.ofFloat(0, -view.getBottom()); 

     animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
      @Override 
      public void onAnimationUpdate(ValueAnimator animation) { 
       toolbar.setTranslationY(-animation.getAnimatedValue) 
       mFrameLayout.layout(mFrameLayout.getLeft(), animation.getFraction() * mToolbar.getHeight(), mFrameLayout.getRight(), mFrameLayout.getBottom()); 
      } 
     }); 
     toolbar.startAnimation(animator); 
+0

такая же проблема, если я использую относительную компоновку. я не хочу менять его высоту, просто переведите его – Richard

+0

Итак, попробуйте изменить setY вместо TranslationY. Это должно перемещать весь вид и должно влиять на другие макеты. – Mann

+0

нет разница тоже. вид движется, а не тот, который ниже него – Richard

Смежные вопросы