onTouch,onLong在android中一起点击

SAN*_*HYA 7 android event-handling touch-event onlongclicklistener

我正在动态地将图像视图添加到父版面.我正在onTouch添加图像执行放大/缩小操作.我想删除它上面的onLongPress的添加视图.

img.setOnLongClickListener(longClickAction);
img.setOnTouchListener(touchAction); 
Run Code Online (Sandbox Code Playgroud)

onLongPress:

OnLongClickListener longClickAction = new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {

        parentLayout.removeView((ImageView)v);
        return false;
    }
};
Run Code Online (Sandbox Code Playgroud)

onTouch:

OnTouchListener touchAction = new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        ImageView i = (ImageView)v;

        //perfrom zoom operation on touch of imageview
        zoom(i, event);
        return true; 

    }
};
Run Code Online (Sandbox Code Playgroud)

只有Touch事件正在运行.为什么?我怎么能同时拥有?我哪里出错了?我该怎么做才能删除添加的视图?请帮我.提前致谢.

ase*_*ovm 17

onTouch始终为您的视图调用,因为这是将事件分派给视图的初始状态.当你长按你的观点,这仍然调用onTouch第一,因为你返回trueonTouch(这意味着你已经消耗这个事件,它不应该再分派),你将不会被onLongPress调用.什么会做的伎俩正在恢复falseonTouch

  • 但是之后`onTouch`和`onLongPress`都会被调用.如果`onLongPress`意味着不调用`onTouch`怎么样? (4认同)