2013-07-11 76 views
0

場景:我需要列表視圖中的項目之間的一條線,並且想要應用動畫(如左側的幻燈片)。動畫列表視圖分隔線

那麼,我自定義列表視圖分隔線。現在想要爲它製作動畫。

有沒有可能的方法?

如果不是,建議任何替代方案。

回答

0

您最好將分隔線添加到您的行佈局來處理它。這將是顯示器在ListView然後每一行,使用onTouchListner您dividerObject(的LinearLayout)來初始化Gesture Class

_dividerRow.setOnTouchListener(new MyGestureListener() 
       ); 


class MyGestureListener implements OnTouchListener 
{ 
    private PointF _init; 
    @Override 
    public boolean onTouch(View v, MotionEvent event) 
    { 
     switch(event.getAction()) 
     { 
      case MotionEvent.ACTION_DOWN : 
       _init = new PointF(event.getRawX(), event.getRawY()); 
       if(!(v == null)) 
       { 
        _VelocityTracker = VelocityTracker.obtain(); 
        _VelocityTracker.addMovement(event); 
       } 

       break; 

      case MotionEvent.ACTION_UP : 
       break; 

      case MotionEvent.ACTION_MOVE : 
       if(leave == false) 
       { 
        if(event.getX() > 0) 
        { 
         _VelocityTracker.addMovement(event); 
         float diffX = event.getRawX() - _init.x; 
         float diffY = event.getRawY() - _init.y; 

         if (Math.abs(diffX) > _slop && Math.abs(diffX) > Math.abs(diffY)) 
         { 
          _swipping = true; 
          ((ViewGroup) v).requestDisallowInterceptTouchEvent(true); 

          MotionEvent cancelEvent = MotionEvent.obtain(event); 
          cancelEvent.setAction(MotionEvent.ACTION_CANCEL | (event.getActionIndex() << MotionEvent.ACTION_POINTER_INDEX_SHIFT)); 
          v.onTouchEvent(cancelEvent); 
         } 

         if(_swipping == true) 
         { 
          ViewHelper.setTranslationX(v, diffX); 
         } 
        } 
       } 

       break; 
      } 

      return false; 
     } 
    } 

希望它可以幫助

+0

感謝您的重播。當列表視圖變爲可見時,我試圖使分隔符動畫。 – Aswin

+0

好了,所以添加你的條件,並使用** TranslateAnimation **來將你的divider X位置轉換爲0,但不要忘記初始化你的'_divider.setX'位置到父寬度(不可見)。你看 ? – marshallino16