onTouch,onLongClick一起在安卓onTouch、onLongClick

由网友(我的原则,)分享简介:我'动态地添加imageviews父布局。而我'/缩小操作添加图像onTouch进行变焦。我想删除添加视图onLong $ P $它PSS。 I'am adding imageviews to parent layout dynamically. And i'am performing zoom in/out ope...

我'动态地添加imageviews父布局。而我'/缩小操作添加图像onTouch进行变焦。我想删除添加视图onLong $ P $它PSS。

I'am adding imageviews to parent layout dynamically. And i'am performing zoom in/out operations onTouch of added image. I want to remove the added view onLongPress of it.

img.setOnLongClickListener(longClickAction);
img.setOnTouchListener(touchAction); 

onLong preSS:

onLongPress :

OnLongClickListener longClickAction = new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {

        parentLayout.removeView((ImageView)v);
        return false;
    }
};

onTouch:

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; 

    }
};

只有触摸事件的工作。为什么?我怎样才能兼得? IAM哪里去了?我应该怎么做要删除添加的看法?请帮我。提前致谢。

Only Touch events are working. Why? How can i have both? Where iam going wrong? What should i do to remove added view? Please help me. Thanks in advance.

推荐答案

onTouch 总是要求你的观点,因为这是调度的事件视图的初始状态。当你长时间preSS您认为这还叫 onTouch 第一,因为你返回 onTouch (这意味着你已经消耗掉这个事件,它不应该再分派),你不会得到 onLong preSS 调用。什么会做的伎俩是返回 onTouch

onTouch is always called for your view since this is the initial state of dispatching the events to the view. When you long press your view this still calls onTouch first and since you return true in onTouch(which means that you've consumed this event and it should not be further dispatched) you won't get onLongPress called. What will do the trick is returning false in onTouch

阅读全文

相关推荐

最新文章