场景:我需要列表视图中的项目之间的一行,并且想要应用动画(如左侧的幻灯片)。
好吧,我自定义了列表视图分隔符。现在想要为它制作动画。
有可能吗?
如果没有,建议任何替代方案。
答案 0 :(得分:0)
您最好将分隔符添加到行布局中以进行处理。它将显示在listView中的每一行,然后在dividerObject(linearLayout)上使用onTouchListner
来初始化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;
}
}
希望有所帮助