我有一个ScrollView - >表=> TableRow我动态添加Rows,每行都有一个LinearLayout,我将OnTouchListener附加到其中,然后当它触及我做的事情。至少那是计划,我遇到的问题是当你在ScrollView中滚动时,即使滚动它也会触发这些事件。我在ScrollView中的其他控件(如Buttons,ImageButtons,EditText
)不会出现这种行为。我的问题是当ScrollView像Button和EditText字段一样滚动时,如何让LinearLayout忽略这些OnTouch事件呢?
答案 0 :(得分:6)
在onTouch事件回调中,将if语句或大小写块添加到检查
的语句块或大小写块 (me.getAction == MotionEvent.ACTION_CANCEL)
与此类似:
else if (me.getAction() == MotionEvent.ACTION_CANCEL){
Log.i(myTag, "Action Cancel");
//This means we are scrolling on the list, not trying to press
}
我工作已经有很长一段时间了,但我知道我必须在某一时刻解决这个问题,现在我快速浏览一下,我认为这是我必须做的才能使它工作。当列表滚动时,它将继续接收回调,但应取消对它们的操作。因此,如果您设置某种if或者切换/ case来检查action_cancel并且在它为true时什么都不做,那么从用户的角度来看,onTouch将“忽略”滚动时发生的事件。