zoukankan      html  css  js  c++  java
  • viewpager 无网络的时候滑动异常

    不知道大家有没有遇到过这种情况,就是框架是viewpager+fragment的架构。然后呢,fragment里面是webview.一般情况下,当没有网的时候,webviwe会说什么找不到网页,然后很长的一个地址显示在webview上。你能够滑很长。一般没网的时候我们会找个东西盖在上面。如:
    这里写图片描述

    如果没网的话,你会发现滑动的时候,滑动不灵敏,因为webwiew在搞鬼。怎么办?

    1.重写canSrcoll方法,下面viewpager:

    public class MainViewPager extends ViewPager {
        public MainViewPager(Context context) {
            super(context);
        }
    
        public MainViewPager(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        @Override
        protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
            if (v instanceof ViewGroup) {
                final ViewGroup group = (ViewGroup) v;
                final int scrollX = v.getScrollX();
                final int scrollY = v.getScrollY();
                final int count = group.getChildCount();
                // Count backwards - let topmost views consume scroll distance first.
                for (int i = count - 1; i >= 0; i--) {
                    // TODO: Add versioned support here for transformed views.
                    // This will not work for transformed views in Honeycomb+
                    final View child = group.getChildAt(i);
                    if (/*child.getVisibility() != View.GONE && */x + scrollX >= child.getLeft() && x + scrollX < child.getRight() &&
                            y + scrollY >= child.getTop() && y + scrollY < child.getBottom() &&
                            canScroll(child, true, dx, x + scrollX - child.getLeft(),
                                    y + scrollY - child.getTop())) {
                        return true;
                    }
                }
            }
    //
            return checkV && ViewCompat.canScrollHorizontally(v, -dx);
    //        return  true;//不可滑动
    //        return false;就可以滑动;
        }
    }

    2.当没网的时候,你要把webview gone掉。当然有网的时候,你要显示出来。

  • 相关阅读:
    .NET:CLR via C# The CLR’s Execution Model
    VisualStudio:WEB 性能测试和负载测试 入门
    Maven:Maven 入门
    技术人生:东莞之行
    技术人生:新的生活计划
    Java:使用 Java 开发的一个异常处理框架
    .NET:命令行解析器介绍
    技术人生:希望有生之年开发一个“自己的解释语言”
    .NET:异常处理的两条“黄金定律”,求批!
    FAQ:Domain Event 和 C# 中的 Event 有啥区别?
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/10568709.html
Copyright © 2011-2022 走看看