2015-08-28 4 views

ответ

0

Мы использовали очень простой и глупый метод для достижения гладкой анимации временной дорожки. Мы игнорируем реальную позицию полосы прокрутки, так как ее трудно получить, и она имеет тенденцию к изменению ее размера и позиции в зависимости от размера контента. В OnScrolled методе RecyclerView мы пересчитали и сбросили поля зрения на основе dy - прокручивались пиксели amout. Вот то, что код выглядит сейчас:

  @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       super.onScrolled(recyclerView, dx, dy); 
       if (dy == 0) return; 
       if (dy < 0) { 
        if ((botMarg - dy) >= displayHeight - topOffset) { 
         botMarg = displayHeight - topOffset; 
        } else { 
         botMarg -= dy; 
        } 
       } else { 
        if (botMarg - dy <= botOffset) { 
         botMarg = botOffset; 
        } else { 
         botMarg -= dy; 
        } 
       } 

Чтобы получить текущую позицию, мы использовали метод recyclerView.findChildViewUnder() с позицией, которую мы получили в OnScrolled.