2

I have overridden the onTouchEvent method in a custom view:

@Override
public boolean onTouchEvent(@NonNull final MotionEvent event) {
    Log.d("TouchEvent", String.valueOf(event.getActionMasked()));
    if (event.getActionMasked() == MotionEvent.ACTION_UP){
       //start animation
    }
    return super.onTouchEvent(event);
}

That view is used in an adapter/adapterview (GridView).

However it looks like the AdapterView consumes the touch/click event and I can never see a event.getActionMasked() == MotionEvent.ACTION_UP being true. The onTouchEvent only gets notified for ACTION_DOWN events (the above Log.d prints only "0").

Please note that I also have an onItemClick listener attached on my AdapterView:

mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
             //start activity
        }
});

I want the onTouchEvent() of my custom view to fire just before the onItemClick() of the adapter and of course being notified for any MotionEvent.ACTION_UP.

Diolor
  • 13,181
  • 30
  • 111
  • 179

0 Answers0