【发布时间】:2011-11-17 14:58:32
【问题描述】:
我有一个名为“Node”的自定义视图,它是名为“NodeGrid”的自定义视图组的子视图。 “NodeGrid”类更具体地扩展了RelativeLayout。
我的自定义视图类(“节点”)中有以下代码 sn-p:
private boolean isBeingDragged = false;
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
isBeingDragged = true;
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
isBeingDragged = false;
}
else if (event.getAction() == MotionEvent.ACTION_MOVE)
{
if (isBeingDragged)
{
float xPosition = event.getX();
float yPosition = event.getY();
//change the x and y position here
}
}
return false;
}
问题:
在此代码中设置断点后,似乎 onTouchEvent 仅在 MotionEvent.ACTION_DOWN 情况下被调用,但对于其他两种情况( “行动起来”或“行动”)。有谁知道可能导致这种情况发生的任何事情?
还有(可能是相关的):
如何视图添加到 ViewGroup 是否重要?我注意到除了“addView”之外,还有其他方法可以将子项添加到 ViewGroup,例如“addFocusables”和“addTouchables”。现在我只是使用“addView”将子视图添加到 ViewGroup。
【问题讨论】:
标签: android view drag-and-drop touch-event viewgroup