@Override public boolean isBottom() { return getHeight() + getScrollY() >= getContentHeight() * getScale(); }
@Override public void goTop() { webview.goTop(); } }
@Override public void goTop() { scrollTo(0, 0); } }
@Override public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: downX = ev.getX(); downY = ev.getY(); //如果滑动到了最底部,就允许继续向上滑动加载下一页,否者不允许 getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_MOVE: float dx = ev.getX() - downX; float dy = ev.getY() - downY; boolean allowParentTouchEvent; if (Math.abs(dy) > Math.abs(dx)) { if (dy > 0) { //位于顶部时下拉,让父View消费事件 allowParentTouchEvent = isTop(); } else { //位于底部时上拉,让父View消费事件 allowParentTouchEvent = isBottom(); } } else { //水平方向滑动 allowParentTouchEvent = true; } getParent().requestDisallowInterceptTouchEvent(!allowParentTouchEvent); } return super.dispatchTouchEvent(ev); }
@Override public boolean isTop() { return getScrollY() <= 0; }
public void initView() { if (null != webview) { hasInited = true; progressBar.setVisibility(View.GONE); webview.loadUrl("https://github.com/jeasonlzy0216"); } }