跪求webview与viewpager的横向滑动冲突

miss456 2017-04-25 09:23:36
webview加载的网页里面有轮波图和横向滑动,现在与viewpager的翻页效果冲突,但是翻页效果必须有,怎么解决,大神们!
...全文
490 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
奔跑吧小卢 2017-07-26
  • 打赏
  • 举报
回复
解决了都不分享一下?JJ短10cm
奋斗小小鸟cy 2017-05-25
  • 打赏
  • 举报
回复
请问楼主怎么解决的,谢谢。
un_nu 2017-04-28
  • 打赏
  • 举报
回复
忽略上面的代码...竟然不能修改帖子了现在。 是否可以设置 js api 来禁止 viewpager 滚动呢?
un_nu 2017-04-28
  • 打赏
  • 举报
回复

public class WebViewEx extends WebView {

    private boolean mDispachOverScrollEvent = true; 
    private boolean mClampedX = false;

    public WebViewEx(Context context) {
        super(context);
        init();
    }

    public WebViewEx(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public WebViewEx(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {

    }

    public void setDispachOverScrollEvent(boolean should){
        mDispachOverScrollEvent = should;
    }


    @Override
    protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
        super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
        mClampedX = clampedX;// X 轴到边界
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return super.onTouchEvent(event);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if(shouldIntercaptTouchEvent()){
            return true;
        }
        return super.onInterceptTouchEvent(ev);
    }

    private boolean shouldIntercaptTouchEvent() {
        if(mDispachOverScrollEvent && mClampedX){
            return true;
        }
        return false;
    }
}
miss456 2017-04-27
  • 打赏
  • 举报
回复
设置那个android:descendantFocusability="blocksDescendants"没用的,我已经解决了。
RaleighLuo 2017-04-26
  • 打赏
  • 举报
回复
webview的父类是viewpager吧,在viewpager中配置android:descendantFocusability="blocksDescendants",系统会优先使用父类的滑动事件
miss456 2017-04-26
  • 打赏
  • 举报
回复
就没有知道吗?感觉这个问题好难
miss456 2017-04-25
  • 打赏
  • 举报
回复
好吧,这问题我都卡了3天了,没思路。
ink_s 2017-04-25
  • 打赏
  • 举报
回复
qq浏览器的百度主页就有你要的这个功能,滑动中间那条 贴吧 应用 图片 推广。。。。那个可滑动的地方网页滑动,滑动其他的地方就返回上一个页面了
ink_s 2017-04-25
  • 打赏
  • 举报
回复
不知道
miss456 2017-04-25
  • 打赏
  • 举报
回复
关键我怎么判断webview加载的网页能否横向滑动呢?canHorizontally这个方法在android2.0就不用了
ink_s 2017-04-25
  • 打赏
  • 举报
回复
设置webview滑动优先,如果webview不需要滑动,就返回false 传递给viewpager 如果需要滑动,就返回true
miss456 2017-04-25
  • 打赏
  • 举报
回复
但是需求是,网页中没有横向滑动的地方,滑动该区域任何位置都能切换
ink_s 2017-04-25
  • 打赏
  • 举报
回复
重写滑动事件,让手指重屏幕中间滑动的就滑动webview,走最2边滑动的就滑动viewpager
miss456 2017-04-25
  • 打赏
  • 举报
回复
引用 1 楼 ink_s 的回复:
禁止viewpager滑动翻页,用导航栏呀
还有别的方法吗
miss456 2017-04-25
  • 打赏
  • 举报
回复
你把viewpager滑动禁止了,那我怎么切换呢
miss456 2017-04-25
  • 打赏
  • 举报
回复
有人知道吗,卡了好长时间了
ink_s 2017-04-25
  • 打赏
  • 举报
回复
禁止viewpager滑动翻页,用导航栏呀
wkg 2017-04-25
  • 打赏
  • 举报
回复
看看这个blog有没有帮助吧,我没试过,前一段看关于webview收藏的 http://blog.csdn.net/w_1463806723/article/details/58589034

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧