2016-11-20 8 views
0

У меня есть следующий код, который определяет, является ли салфетка в onTouch левым/правым. Но я хочу определить верх/низ. Просьба предложить изменения в коде, как к тому, как я могу добиться того, что путем изменения кодаПрокрутите страницу к следующему элементу в recyclerview

r.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      int downX = 0,upX; 
      switch(event.getAction()){ 
       case MotionEvent.ACTION_DOWN:{ 
        downX = (int) event.getX();} 
       case MotionEvent.ACTION_UP:{ 
        upX = (int) event.getX(); 

        float deltaX = downX - upX; 
        Log.e("DeltaX","Dd "+deltaX); 
        if(Math.abs(deltaX)>0){ 
         if(deltaX>=0){ 

          return true; 
         }else{ 

          return true; 
         } 
        } 
        else { 

        } 
       } 
      } 

      return false; 
     } 
    }); 

Пожалуйста, не предполагают каких-либо 3-й партии библиотеки или любое другое решение. Пожалуйста, предложите изменения только в приведенном выше коде. Я пробовал много других вещей, но это идеально подходит

Благодарим за отзыв!

+1

почему вы не получаете event.getY() и работать ту же логику? –

+0

Не могли бы вы отправить решение? Благодаря ! –

ответ

0

вот код я понял,

r.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     public boolean top; 

     @Override 
     public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
      super.onScrollStateChanged(recyclerView, newState); 


      if (top) { 
       int index = mLay.findFirstVisibleItemPosition(); 
       r.smoothScrollToPosition(index); 

      } else { 
       int index = mLay.findLastVisibleItemPosition(); 
       r.smoothScrollToPosition(index); 


      } 


     } 

     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 

      if (dy > 0) { 
       top = false; 
      } else { 

       top = true; 
      } 

     } 
    }); 
+0

у моего recycler есть ошибка с этим кодом, его автоматически всегда прокрутка –