首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >触摸listener并长时间单击listener

触摸listener并长时间单击listener
EN

Stack Overflow用户
提问于 2014-04-02 06:42:39
回答 1查看 3.5K关注 0票数 2

我写了一个在表面视图上使用触摸侦听器来移动对象的代码,它工作得很好,当我在长点击侦听器上插入时,触摸侦听器停止工作,即使我没有触摸它,对象也会移动。需要长时间点击才能打开对话框。

在创建时:

代码语言:javascript
复制
sf = new SurfaceView(this);
sf.setOnTouchListener(this);
sf.setOnLongClickListener(this);

在长点击时:

代码语言:javascript
复制
public boolean onLongClick(View v) {
    if (!changePositionMode){
        final Dialog dialog = new Dialog(this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.text_manager);
        dialog.setTitle("Browser");
        dialog.setCancelable(true);
        dialog.show();
    }
    return false;
}

浅谈触摸听者

代码语言:javascript
复制
public boolean onTouch(View v, MotionEvent event) {
    Point p=new Point((int)event.getX(),(int)event.getY());
    if (event.getAction()==MotionEvent.ACTION_DOWN){
        }else if (object.isTouch(p)){
            changePositionMode=true;
            x=event.getX();
            y=event.getY();
            draw();
            return true;
        }   
    }
    else if (event.getAction()==MotionEvent.ACTION_MOVE){
        t.changeTamplatePosition(event.getX()-x,event.getY()-y);
        x=event.getX();
        y=event.getY();
        draw();
        return true;
    }
    else if (event.getAction()==MotionEvent.ACTION_UP){
        changePositionMode=false;
    }

    return false;
}
EN

回答 1

Stack Overflow用户

发布于 2015-07-15 18:30:32

您必须在OnTouch(View v,MotionEvent event)函数中返回false而不是true,以便控件上的其他侦听器(OnLongClickListener)保持活动状态。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22798327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档