3

Iphone App video linkРазвернуть Recyclerview элемент с анимацией при прокрутке

Как я могу разрабатывать и вид, который размещен в этом видео? Это в основном расширение элемента recyclerview с анимацией. Я попытался с onItemtouchlistener recyclerview, а также с некоторым пользовательским представлением с анимацией, но не получил точного результата.

Наконец-то я пришел через addonscrolllistener, это дает мне результаты, но не точно.

mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
      if(newState == RecyclerView.FOCUS_UP) { 
       System.out.println("hello, ia m going up"); 
      } 
     } 

     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 
      if (dy > 0){ 
       TextView tv = (TextView)recyclerView.findViewById(R.id.title); 
       //tv.setVisibility(View.VISIBLE); 
       if (tv.getVisibility()==View.VISIBLE){ 
        System.out.println("yes"); 
       }else { 
        slideToTop(tv); 
       } 
      } 
     } 
    }); 

private void slideToTop(View view){ 
    TranslateAnimation animate = new TranslateAnimation(0,0,0,-view.getHeight()); 
    animate.setDuration(1000); 
    animate.setFillAfter(false); 
    view.startAnimation(animate); 
    view.setVisibility(View.VISIBLE); 
} 
+0

Я понимаю, что это неприятно, когда клиент сбрасывает работу на вас в последний момент, но тем не менее читатели не поспешит на основе запросов о срочности. Здесь все вопросы имеют одинаковую важность. Если вы действительно застряли, стоит сохранить контактную информацию других разработчиков Android или, возможно, воспользоваться платной услугой, такой как AirPair, и заплатить за срочную помощь. – halfer

+0

У читателей нужно посмотреть ваше видео, чтобы понять вопрос? Если да, то, пожалуйста, также опишите, о чем речь, - вопросы здесь должны быть самодостаточными. – halfer

ответ

2

Я думаю, что ваш вопрос является слишком широким - однако, вот некоторые psuedocode:

onScrolled() { 
    View child = getSecondVisibleChild(); 
    int distanceFromTop = child.getTop(); 
    int distanceAtWhichExpandingShouldOccur = 100; 
    if(distanceFromTop < distanceAtWhichExpandingShouldOccur) { 
     child.setHeight(child.getOriginalHeight() + (distanceFromTop - distanceAtWhichExpandingShouldOccur)) 
    } 
} 

Таким образом, вы заметите, то второй виден ребенок тот, кто изменения высоты. Он изменился, когда он меньше distanceAtWhichExpandingShouldOccur в верхней части окна. Его высота изменяется, чтобы ее bottom оставался неподвижным - поэтому его высота увеличивается с одинаковым темпом, его движение top.

После того, как это уже не второй виден ребенок (он же, его top является 0), она должна быть прокручивается от как нормальный и следующий ребенок должен его высота изменяется при его сверху меньше distanceAtWhichExpandingShouldOccur.

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

  • Нет связанных вопросов^_^