使用控件:viewpager,webview
期望达到效果:webView嵌套在viewpager中。
                          webview可以自由滑动,在webview滑动到最右端或最左端时,切换至下一个页面。
目前解决进度:
                       将viewpager的onInterceptTouchEvent横向滑动事件传递至子view(webview)中,可以使webview自由滑动。
                        在webview达到末尾时将其横向滑动禁止,传递给上层viewpager,这样就可以切换至下一屏遇到问题:
                   1、 无法及时获知webview是否已经达到最右端或最左端
                   2、无法获取webview的宽度
                   3、webview中的getScrollX()方法有时会出现延时赋值的情况---即我在ACTION_MOVE中调用该方法时,会出现前后两次返回值相同的情况(页面横向坐标已经发生位移)
                   4、为什么computeHorizontalScrollOffset,computeHorizontalScrollRange(),computeHorizontalScrollExtent()这几个方法在滑动过程中返回的值都不变呢,与APi的解释不符合啊  该问题已经耽误一个星期了,跪求大侠指教。
  如果各位有其它解决思路,也请大家集思广益,多谢~

解决方案 »

  1.   

    你这个滑动是指WebView里面的内容滑动吗?
      

  2.   

    对对,就是那种效果。webview的实际效果大于屏幕尺寸。
      

  3.   


    请问您有可行的方法或思路吗,thx~~
      

  4.   

    http://www.eoeandroid.com/thread-189777-3-1.html
      

  5.   

    在webView中重写webView类进行继承
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (getScrollX()<0) {
    LogUtil.w(TAG, "WifiCustomWebView---> getScrollX <= 0");
    // touchLayout.getParent().requestDisallowInterceptTouchEvent(false);
    return false;
    } else if (getScrollX() >= computeHorizontalScrollRange()) {  //- getWidth()
    LogUtil.w(TAG, "WifiCustomWebView---> getScrollX >= computeHorizontalScrollRange()");
    return false;
    } else {
    LogUtil.w(TAG, "WifiCustomWebView---> true");
    touchLayout.getParent().requestDisallowInterceptTouchEvent(true);  //子view中,可以中断pager获取到事件
    return true;
    }
    // return super.onInterceptTouchEvent(ev);
    }
      

  6.   

    请问怎么将webview嵌套到 viewpager中阿