【问题标题】:Android ViewPager setOnTouchListenerAndroid ViewPager setOnTouchListener
【发布时间】:2013-09-21 09:16:48
【问题描述】:

我有一个ViewPager组件,在fragment里面有一个WebView组件,我想检测用户在屏幕上的点击,同时用户也可以滑动。

目前我在 ViewPager 上设置 onTouchListener 如下: vPager.setOnTouchListener(new View.OnTouchListener() { 浮动 oldX = 0, newX = 0, sens = 5;

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                oldX = event.getX();
                break;

            case MotionEvent.ACTION_UP:
                newX = event.getX();
                if (Math.abs(oldX - newX) < sens) {
                    tap();
                    return true;
                }
                oldX = 0;
                newX = 0;
                break;
            }

            return false;
        }
    });

我发现只有左右滑动才会触发监听器,上下滑动时不会触发。我在 WebView 组件上滑动,它的内容很长,需要滚动。

【问题讨论】:

    标签: android


    【解决方案1】:

    您只寻找 X,在 Y 轴上上下移动

    【讨论】:

    • 不,我在onTouch方法入口处添加了调试点,只有左右滑动才会触发。
    • 然后webview获取事件,尝试实现它的onTouchListener,看看是否获取到事件,如果是,将监听器作为变量移动,并将两个视图都分配给它
    • 因为寻呼机,它只对左右滑动显示下一个上一个片段感兴趣,它对上/下不感兴趣。这几乎是android桌面的工作方式,只是远那里的限制更严格,当您左右滑动时,您会转到屏幕,小部件只能实现上下手势并点击
    • 但是你知道,我可以将监听器添加到 WebView,但是 webView 在 Fragment 内部,我无法将事件传递给 ViewPager...
    • 然后尝试实现一个观察者模式并将事件传递给寻呼机
    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多