本文主要是介绍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);}@Overrideprotected 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掉。当然有网的时候,你要显示出来。
这篇关于viewpager 无网络的时候滑动异常的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!