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掉。当然有网的时候,你要显示出来。

  • 相关阅读:
    【IBM Tivoli Identity Manager 学习文档】8 Service和Service Type
    【IBM Tivoli Identity Manager 学习文档】13 Service管理
    sql 分组查询中每组中某列的各行字符数据相加显示
    c#压缩和解压缩文件
    三层架构之泛型应用
    Winform下载文件
    [C#]DataTable常用操作总结【转】
    C# 泛型Dictionary (Hashtable)
    C#获取打印机状态
    打印机状态
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/6647803.html
Copyright © 2011-2022 走看看