keshaolove 2016-08-09 05:54 采纳率: 0%
浏览 1360
已结题

HorizonScrollView 的滑动下与子控件的onTouch事件冲突

最近项目中,要做类似微信录音,长按录音,手指移动到其他地方取消录音。这些录音button都在水平列表HorizonScrollView
中, 测试当移动到其他地方是接收不到Action_Move 设置请求父控件不拦截后,又会导致scrollView滑动出现问题! 有哪位大神会的?我发代码给您看下!谢谢!

  • 写回答

2条回答 默认 最新

  • keshaolove 2016-08-09 07:26
    关注

    public boolean onTouchEvent(MotionEvent event) {
    int action = event.getAction();
    int x = (int) event.getX();
    int y = (int) event.getY();

        switch (action) {
            case MotionEvent.ACTION_DOWN:
                Log.i("wtf","     --------------------------        ACTION_DOWN");
    

    // isRecording = true;
    changeState(STATE_RECORDING);
    break;
    case MotionEvent.ACTION_MOVE:
    Log.i("wtf"," -------------------------- ACTION_MOVE");
    // getParent().requestDisallowInterceptTouchEvent(false);
    WorkMarkUi.flag=0;
    if (isRecording) {
    //根据x y的坐标判断是否想取消
    if (wantToCancel(x, y)) {
    changeState(STATE_WANT_TO_CANCEL);
    } else {
    changeState(STATE_RECORDING);
    }
    }
    break;
    case MotionEvent.ACTION_UP:
    WorkMarkUi.flag=-1;

                //   getParent().requestDisallowInterceptTouchEvent(true);
                Log.i("wtf","     --------------------------        ACTION_UP");
                if(!mReady){
                    reset();
                    return  super.onTouchEvent(event);
                }
                onActionUp();
                break;
    
        }
        return super.onTouchEvent(event);
    }
    
    
    
    
        ScrollView:
            @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (WorkMarkUi.flag == -1) {
            return super.onInterceptTouchEvent(ev);
       }else{
            return false;
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 pragma pack没起作用
  • ¥20 如何实现关闭某一个应用程序后,自动运行一个批处理文件。
  • ¥15 关于 S7-PLCSIM Advanced 5.0本地TCP连接无法读写数据
  • ¥15 关于温度改变石墨烯介电性能(关键词-介电常数)
  • ¥150 HDMI分路器LT86102 的输出在890MHz频点处EMC超标8DB
  • ¥15 druid(相关搜索:数据库|防火墙)
  • ¥15 大一python作业
  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥60 如何鉴定微信小程序数据被篡改过
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀