当我在 OnTouchListener 中使用 MotionEvent.ACTION_MOVE 时,有什么方法可以禁用 ListView 适配器中的 getView() 方法?
我需要这样做,因为我尝试用手指移动我的容器(里面是我的 ListView)。我使用这个方法 setLayoutParams:
private class MyListener implements View.OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
RelativeLayout.LayoutParams paramsUp = (RelativeLayout.LayoutParams) myBar.getLayoutParams();
paramsUp.topMargin = 0;
myBar.setLayoutParams(paramsUp);
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams paramsMove = (RelativeLayout.LayoutParams) myBar.getLayoutParams();
paramsMove.topMargin = Y - yDelta;
myBar.setLayoutParams(paramsMove);
break;
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) myBar.getLayoutParams();
yDelta = Y - lParams.leftMargin;
break;
}
//myBar.invalidate();
return true;
}
}
当我移动容器时,一切都发生得非常缓慢。这是因为容器改变了它的大小并且所有的对象都被重新加载了。
我的第二个问题:当我移动 ListView 项目时如何禁用滚动?例如:向左移动或向右移动。
谢谢