我有一个按钮,可以通过onClick处理程序处理。同时处理onClick和onTouchEvent事件
但是,我也需要响应onTouchEvent事件,以便我可以处理按钮高亮。
问题是,如果我从我的onTouchEvent处理程序返回“false”,它将在onClick处理程序中调用,但永远不会为随后的“up”事件给我一个onTouchEvent。
如果我从onTouchEvent返回“true”,那么我得到“up”事件,但它永远不会将触摸发送到onClick。
那么我有什么选择?
实现自己的“点击”处理中的onTouchEvent - 这意味着我将需要跟踪和按钮区域移动等似乎有点复杂。
我可以让我的按钮使用选择器而不是单个图像,并为不同的状态分配不同的图像。我遇到的问题是,选择器很麻烦,以至于更改图像,我需要这样做。 (当我的应用程序是在不同的“模式”,为不同状态下的按钮图像而改变。同样,这似乎过于复杂。
是不是有一个简单的方法来完成这一切???
让我看看我是否理解正确。你想用你自己的方式覆盖Button的默认突出显示?如果是这样,你可以在onTouch中做所有突出显示的东西,并在收到ACTION_UP时调用button.performClick()。如果设置了onclicklistener,performClick会调用按钮的onClick方法。 –