2017-10-16 153 views
1

我有一個問題,我卡在這一點。我在recyclinglerview的每個項目上使用了recyclerview swipe。我需要做的就是更新文本視圖1,2等等,當滑動像這樣向右移動時。 image of recyclerviewRecyclerView項目刷卡更新背景textview

我得到的x軸值與event.getRaw(x),我需要增加的金額,因爲x值從左到右增加,並減少計數,如果滑動是從右移動到剩下。這是我的代碼。

holder.swipeLayout.setOnTouchListener(new View.OnTouchListener() { 

      int downX, upX, initialX = 0, rightX; 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 

       switch (event.getAction()) { 

        case MotionEvent.ACTION_DOWN: 
         startX = event.getRawX(); 
         startY = event.getRawY(); 
         break; 

        case MotionEvent.ACTION_MOVE: 
         float x = event.getRawX(); 

         float y = event.getRawY(); 
         // Calculate move update. This will happen many times 
         // during the course of a single movement gesture. 

         scrollByX = x - startX; // move update x increment 
         scrollByY = y - startY; // move update y increment 

         startX = x; // reset initial values to latest 
         startY = y; 

         if (scrollByX >= 100 && scrollByX < 150) 
          holder.leftTextView.setText("1"); 
         if (scrollByX >= 150 && scrollByX < 200) 
          holder.leftTextView.setText("2"); 
         if (scrollByX >= 200 && scrollByX < 250) 
          holder.leftTextView.setText("3"); 
         if (scrollByX >= 250 && scrollByX < 300) 
          holder.leftTextView.setText("4"); 
         if (scrollByX >= 350 && scrollByX < 400) 
          holder.leftTextView.setText("5"); 

         break; 

        case MotionEvent.ACTION_UP: 
         upX = (int) event.getX(); 
         Log.i("event.getX()", " upX " + downX); 
         holder.swipeLayout.animateReset(); 
         //holder.leftTextView.setText("0"); 
         scrollByX = 0; 
         scrollByY = 0; 
         if (upX - downX > 100) { 

          // swipe right 
         } 

         else if (downX - upX > -100) { 

          // swipe left 
         } 
         break; 

       } 

       return false; 
      } 


     }); 

每當我滑動這些項目有時顯示1,有時5表示它不正常表現。有人能幫我解決這個問題嗎?謝謝。

回答

1

嘗試更新在onTouchEvent()的TextView的case MotionEvent.ACTION_MOVE

+0

是我解決它。非常感謝你 :) – AIK