首页 > 解决方案 > OnTouchListener webview 总是循环

问题描述

我想检测我是否在我的 webview 上触摸编辑文本类型,我将显示浮动操作按钮。如果我触摸未知类型,浮动操作按钮将被隐藏。

但是在这里,当我触摸 webview 上的某个位置时,它会循环 4 / 5 次,直到我得到真正的触摸类型。

这是我的代码:

   @Override
    public boolean onTouch(View v, MotionEvent event) {
        WebView.HitTestResult hitTestResult = ((WebView) v).getHitTestResult();

        if (hitTestResult.getType() == WebView.HitTestResult.EDIT_TEXT_TYPE) {
            this.showKeyboard();
            this.floatingActionButton.setVisibility(View.VISIBLE);
            this.fabKeyboard.setVisibility(View.VISIBLE);
        }else{
            this.hideKeyboard();
            this.floatingActionButton.setVisibility(View.GONE);
            this.fabKeyboard.setVisibility(View.GONE);
        }


        Log.d("HIT RESULT", hitTestResult.getExtra() + " " + hitTestResult.getType());
        return false;
    }

这是我的日志:

I/InputMethodManager: toggleSoftInput(I,I)
D/HIT RESULT: null 9
I/InputMethodManager: toggleSoftInput(I,I)
D/HIT RESULT: null 9
I/InputMethodManager: toggleSoftInput(I,I)
D/HIT RESULT: null 9
D/ViewRootImpl@c99fda4[MainActivity]: ViewPostIme pointer 1
I/InputMethodManager: toggleSoftInput(I,I)
D/HIT RESULT: null 9 
// 9 IS Edit Text Type

D/HIT RESULT: null 9
D/InputMethodManager: HSIFW - flag : 0
D/HIT RESULT: null 0
D/InputMethodManager: HSIFW - flag : 0
D/HIT RESULT: null 0
D/InputMethodManager: HSIFW - flag : 0
D/HIT RESULT: null 0
D/InputMethodManager: HSIFW - flag : 0
D/HIT RESULT: null 0
// 0 Is Unknown Type

标签: javaandroidwebview

解决方案



推荐阅读