使onTouchEvent与OnItemClickListener一起使用非常好

时间:2014-11-22 22:27:27

标签: android gridview textview ontouchevent onitemclicklistener

我已经实现了一个自定义TextView类,以便我可以处理TextView中存在的GridView的触摸和触摸发布事件。我得到了这个工作。但是,我还为OnItemClickListener设置了GridView,这样我就可以处理该事件并在主片段中运行代码 - 点击它不适合处理自定义{{1}类本身。但是现在我已经实现了两个冲突,并且现在没有触发释放触摸的事件。

我如何允许触发这些手势事件 - 在自定义类中TextView和GridView中的onTouchEvent,而不会丢失某些操作事件?

OnItemClickListener

在自定义TextView类中:

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //handle click
        }
});

使用此代码,当我点按并释放@Override public boolean onTouchEvent(MotionEvent event) { //handle touch and release events only if (event.getAction() == MotionEvent.ACTION_DOWN) { //handle touch down } else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_MOVE || event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_OUTSIDE || event.getAction() == MotionEvent.ACTION_SCROLL) { //handle touch release } return super.onTouchEvent(event); } 时,会运行触地下载代码,TextView会调用OnItemClickListener,但GridView不会再次调用,因此不会处理触摸释放事件。

如果我将onTouchEvent更改为以下内容,则会正确处理触控和触控释放,但不会调用onTouchEvent

OnItemClickListener

0 个答案:

没有答案