2020-11-15Webview添加滑动和双击效果,不冲突

1.实现接口

 implements View.OnClickListener, View.OnTouchListener

 

2.重写方法


    @Override
    public boolean onTouch(View v, MotionEvent event) {

        return mGestureDetector.onTouchEvent(event);
    }

 

3.创建滑动监控对象

    GestureDetector.SimpleOnGestureListener myGestureListener = new GestureDetector.SimpleOnGestureListener(){
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

            Log.e("<--滑动测试-->", "开始滑动");
            float x = e1.getX()-e2.getX();
            float x2 = e2.getX()-e1.getX();
            if(x>FLING_MIN_DISTANCE&&Math.abs(velocityX)>FLING_MIN_VELOCITY){
                //Toast.makeText(getActivity(), "向左手势", Toast.LENGTH_SHORT).show();
               // kuoda.performClick();
               // expandMethod();

               InfoActivity infoActivity=(InfoActivity)getActivity();
                Message msg1 = new Message();
                msg1.arg1=1;
                infoActivity.JShandler.sendMessage(msg1);

            }else if(x2>FLING_MIN_DISTANCE&&Math.abs(velocityX)>FLING_MIN_VELOCITY){
               // Toast.makeText(getActivity(), "向右手势", Toast.LENGTH_SHORT).show();
               // kuoda.performClick();
                narrowMethod();
            }else{
                System.out.println("上下滑动------");

            }
            return false;
        };
    };

4基本完成了,只需要绑定上就可以了

mGestureDetector = new GestureDetector(getActivity(), myGestureListener);
collectWebview.setOnTouchListener(this);//将主容器的监听交给本activity,本activity再交给mGestureDetector
collectWebview.setLongClickable(true);   //必需设置这为true 否则也监听不到手势

5.绑定以及添加双击方法

    public void scroll(){
        mGestureDetector = new GestureDetector(getActivity(), myGestureListener);
        collectWebview.setOnTouchListener(this);//将主容器的监听交给本activity,本activity再交给mGestureDetector
        collectWebview.setLongClickable(true);   //必需设置这为true 否则也监听不到手势

        mGestureDetector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
            @Override
            public boolean onSingleTapConfirmed(MotionEvent e) {
                return false;
            }

            @Override
            public boolean onDoubleTap(MotionEvent e) {
                System.out.println("双击");
                int state = collect_Listview.getVisibility();
                collectWebview.setVisibility(View.VISIBLE);
                if (state == View.GONE) {

                    collect_Listview.setVisibility(View.VISIBLE);
                } else {
                    collect_Listview.setVisibility(View.GONE);
                    LinearLayout.LayoutParams params= (LinearLayout.LayoutParams) collectWebview.getLayoutParams();
//获取当前控件的布局对象
                    params.height=LinearLayout.LayoutParams.MATCH_PARENT;//设置当前控件布局的高度
                    collectWebview.setLayoutParams(params);//将设置好的布局参数应用到控件中
                }
                return false;
            }

            @Override
            public boolean onDoubleTapEvent(MotionEvent e) {

                return false;
            }
        });
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值