Fixed flickering on vertical overscroll

pull/185/head
M66B 5 years ago
parent a515bfa81d
commit 56e91abde1

@ -1929,7 +1929,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
@Override @Override
public void onOverScrolled(int scrollX, int scrollY, int dx, int dy, boolean clampedX, boolean clampedY) { public void onOverScrolled(int scrollX, int scrollY, int dx, int dy, boolean clampedX, boolean clampedY) {
if (clampedY && ((WebViewEx) wvBody).isZoomed()) if (clampedY && ((WebViewEx) wvBody).isZoomedY())
properties.scrollBy(0, dy); properties.scrollBy(0, dy);
} }
@ -2796,7 +2796,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
} else { } else {
//view.getParent().requestDisallowInterceptTouchEvent(false); //view.getParent().requestDisallowInterceptTouchEvent(false);
//return (view.getId() == R.id.wvBody && ev.getAction() == MotionEvent.ACTION_MOVE); //return (view.getId() == R.id.wvBody && ev.getAction() == MotionEvent.ACTION_MOVE);
boolean intercept = (view.getId() == R.id.wvBody && ((WebViewEx) wvBody).isZoomed()); boolean intercept = (view.getId() == R.id.wvBody && ((WebViewEx) wvBody).isZoomedY());
view.getParent().requestDisallowInterceptTouchEvent(intercept); view.getParent().requestDisallowInterceptTouchEvent(intercept);
return false; return false;
} }

@ -191,7 +191,7 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
clampedY = true; clampedY = true;
} }
Log.i("MMM clamped=" + clampedY + " new=" + newScrollY + " dy=" + deltaY + " mode=" + overScrollMode); Log.i("onOverScrolled clamped=" + clampedY + " new=" + newScrollY + " dy=" + deltaY);
intf.onOverScrolled(scrollX, scrollY, deltaX, deltaY, clampedX, clampedY); intf.onOverScrolled(scrollX, scrollY, deltaX, deltaY, clampedX, clampedY);
return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent); return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent);
@ -235,7 +235,7 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
return super.onGenericMotionEvent(event); return super.onGenericMotionEvent(event);
} }
public boolean isZoomed() { public boolean isZoomedX() {
int xtend = computeHorizontalScrollExtent(); int xtend = computeHorizontalScrollExtent();
if (xtend != 0) { if (xtend != 0) {
float xscale = computeHorizontalScrollRange() / (float) xtend; float xscale = computeHorizontalScrollRange() / (float) xtend;
@ -243,6 +243,10 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
return true; return true;
} }
return false;
}
public boolean isZoomedY() {
int ytend = computeVerticalScrollExtent(); int ytend = computeVerticalScrollExtent();
if (ytend != 0) { if (ytend != 0) {
float yscale = computeVerticalScrollRange() / (float) ytend; float yscale = computeVerticalScrollRange() / (float) ytend;

Loading…
Cancel
Save